【发布时间】:2013-10-18 09:19:42
【问题描述】:
在 JavaFX2 中使用 WebEngine 时,我注意到它有时会卡住。假设我正在制作一个爬虫,它只是在页面上找到超链接,然后递归地访问它们以执行相同的操作,跟踪我们访问过哪些链接以及哪些链接已经在边界上。在运行我的代码时,执行有时会在任意时刻挂起。
我已经以workDoneProperty 和exceptionProperty 的侦听器的形式向我的项目添加了一些调试代码,并打印了loadWorker 的stateProperty 的每个转换。然后我注意到有时引擎会停止 URL 的中间加载(状态卡在RUNNING 并且没有更多的workDone 更新)。我假设这是因为超时或其他原因,但我已经停止等待 5 分钟后是否确实超时。
exceptionProperty 似乎不会生成任何事件,webEngine 也不会转换为FAILED 或CANCELLED,它只是停止了。我想知道这是否可能是图书馆中的竞争条件,或者我可能缺少一些东西......有没有人遇到过这个知道如何解决这个问题的人?对于我的应用来说,引擎不只是随机停止非常重要...
编辑:从我的控制台添加输出:
Work done: -1
Engine Load Worker transitioning into state: READY
Work done: 0
Engine Load Worker transitioning into state: SCHEDULED
Engine Load Worker transitioning into state: RUNNING
Work done: 21
Work done: 24
Work done: 24
Work done: 57
Work done: 72
BUILD STOPPED (total time: 9 minutes 32 seconds)
【问题讨论】:
标签: java javafx javafx-webengine