我想知道
之间有什么区别scraper.exitExecution() and
scraper.stopExecution() and
scraper.finishExecutingProcessor()
我试过去java doc,我找不到任何东西。似乎没有适当的文件。请帮忙。
我需要一个方法来在超时后停止执行刮刀,我该怎么做?
答案 0 :(得分:1)
为什么不下载库的sourses
并查看它?
源代码分析显示,差异仅在于设置这些功能的状态。
STATUS_STOPPED
被解释为该配置已被用户中止。
STATUS_EXIT
被解释为刚刚退出配置。
即。他们几乎是平等的。
让我们一起做:
一:
public void exitExecution(String message) {
setStatus(STATUS_EXIT);
this.message = message;
}
二:
public void stopExecution() {
setStatus(STATUS_STOPPED);
}
接下来,转到BaseProcessor
课程,这是使用STATUS_EXIT
或STATUS_STOPPED
状态的两个地方之一:
public Variable run(Scraper scraper, ScraperContext context) {
int scraperStatus = scraper.getStatus();
if (scraperStatus == Scraper.STATUS_STOPPED || scraperStatus == Scraper.STATUS_EXIT) {
return EmptyVariable.INSTANCE;
}
...
}
班级ConfigPanel
中的另一个:
public void onExecutionEnd(Scraper scraper) {
...
} else if (status == Scraper.STATUS_STOPPED) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
GuiUtils.showWarningMessage("Configuration \"" + configDocument.getName() + "\" aborted by user!");
ide.setTabIcon(ConfigPanel.this, ResourceManager.SMALL_FINISHED_ICON);
}
});
} else if ( status == Scraper.STATUS_EXIT && message != null && !"".equals(message.trim()) ) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
GuiUtils.showWarningMessage("Configuration exited: " + message);
ide.setTabIcon(ConfigPanel.this, ResourceManager.SMALL_FINISHED_ICON);
}
});
}
...
}