Java 集体讨论克服Heroku的想法';s 30秒超时和HTMLUnit';页面渲染速度慢
我有一个奇怪的问题 我正在做一些屏幕抓取,然后将数据呈现给我的用户以进行一些选择。我无法控制正在使用的站点,我需要它们首先执行Javascript 这个过程在本地运行得很好,每件事情只需要一分钟就可以发生。但是当我推到Heroku时,请求在30秒后超时,尽管我可以通过日志看到,实际的处理一直在进行 您是否可以推荐以下解决方案之一或其他替代方案:Java 集体讨论克服Heroku的想法';s 30秒超时和HTMLUnit';页面渲染速度慢,java,heroku,htmlunit,Java,Heroku,Htmlunit,我有一个奇怪的问题 我正在做一些屏幕抓取,然后将数据呈现给我的用户以进行一些选择。我无法控制正在使用的站点,我需要它们首先执行Javascript 这个过程在本地运行得很好,每件事情只需要一分钟就可以发生。但是当我推到Heroku时,请求在30秒后超时,尽管我可以通过日志看到,实际的处理一直在进行 您是否可以推荐以下解决方案之一或其他替代方案: 以某种方式增加Heroku的超时-我认为这是不可能的(我使用的是PlayFramework 1.2.7和Java) 以某种方式加速HTMLUnit-我已
LogFactory.getFactory().setAttribute("org.apache.commons.logging.Log", "org.apache.commons.logging.impl.NoOpLog");
java.util.logging.Logger.getLogger("com.gargoylesoftware.htmlunit").setLevel(Level.OFF);
java.util.logging.Logger.getLogger("org.apache.commons.httpclient").setLevel(Level.OFF);
WebClient webClient = new WebClient();
webClient.getOptions().setThrowExceptionOnScriptError(false);
webClient.waitForBackgroundJavaScript(20000);
Page page = webClient.getPage(url);
WebResponse response = page.getWebResponse();
String html = response.getContentAsString();
运行长时间运行的流程的正确方法是使用异步工作进程。即使是一个耗时5秒的进程也会将您的web worker锁定一段时间(假设您正在运行同步worker),因此将此类任务委托给异步worker总是明智的 请按照以下指南开始: