0

我想知道两者有什么区别

scraper.exitExecution() and 

scraper.stopExecution() and 

scraper.finishExecutingProcessor() 

我曾尝试查看java doc,但在那里找不到任何东西。似乎没有适当的文档。请帮忙。

我需要一种在超时后停止执行刮板的方法,我该怎么做?

4

1 回答 1

1

为什么不直接下载sourses库并查看它呢?

源码分析表明,区别仅在于这些函数设置的状态。

STATUS_STOPPED被解释为该配置被用户中止。 STATUS_EXIT被解释为配置刚刚退出。

即它们几乎相等。

我们一起做吧:

一:

public void exitExecution(String message) {
    setStatus(STATUS_EXIT);
    this.message = message;
}

二:

public void stopExecution() {
    setStatus(STATUS_STOPPED);
}

接下来,去上课,这是使用or状态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);
                }
            });
        }
...
}
于 2014-09-17T10:27:04.607 回答