Webharvest Scraper类中的exitExecution()和stopExecution()之间有什么区别

时间:2014-09-17 10:09:24

标签: java web-scraping screen-scraping scraper webharvest

我想知道

之间有什么区别
scraper.exitExecution() and 

scraper.stopExecution() and 

scraper.finishExecutingProcessor() 

我试过去java doc,我找不到任何东西。似乎没有适当的文件。请帮忙。

我需要一个方法来在超时后停止执行刮刀,我该怎么做?

1 个答案:

答案 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_EXITSTATUS_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);
                }
            });
        }
...
}