В чем разница между exitExecution() и stopExecution() в классе Webharvest Scraper

Я хочу знать, в чем разница между

scraper.exitExecution() and 

scraper.stopExecution() and 

scraper.finishExecutingProcessor() 

Я попытался заглянуть в документ Java, я не мог найти там ничего. Кажется, что нет надлежащей документации для этого. Пожалуйста помоги.

Мне нужен метод, чтобы остановить выполнение скребка после некоторого времени ожидания, как я могу это сделать?

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);
                }
            });
        }
...
}
Другие вопросы по тегам