定期网页加载

时间:2017-04-10 16:34:07

标签: java javafx scheduledexecutorservice javafx-webengine

我正在用java开发一个机器人,我需要它定期加载一个网页及其所有的javascript计算。为此,我使用ScheduledExecutorService和JavaFX WebEngine。我的预定服务运行良好,已经过日志测试,但是一旦我用WebEngine添加页面加载,它突然停止了预定的服务......

在服务之前,我正在使用不同的WebEngine对象来获取其中使用的URL。那段代码打印出来“执行!”一次又停下来。但如果我用“engine.load(...”删除该行,则每隔5秒执行一次打印

以下是我服务的代码:

    ScheduledExecutorService updateService = Executors.newScheduledThreadPool(5);
    WebEngine engine = this.updateEngine;

    ScheduledFuture scheduledFuture = 
            updateService.scheduleWithFixedDelay(new Runnable(){
                @Override
                public void run() { 
                    System.out.println("Executed!");
                    Maj job = jobsCycle.getNextMaj();


                    engine.load(job.getURL());

                }
            },
            0,
            5,
            TimeUnit.SECONDS
            );

感谢您的帮助,如果您不知道如何解决,我愿意接受任何其他解决方案。

1 个答案:

答案 0 :(得分:0)

非常感谢你的帮助! -_-

最后,我通过使用Selenium而不是JavaFX WebEngine解决了这个问题。这有点慢,但是在使用HtmlUnit加载网页时会自动管理js加载和渲染。

和平