2014-09-17 2 views
0

Je veux savoir quelle est la différence entre leQuelle est la différence entre le exitExecution() et stopExecution() dans la classe Webharvest Scraper

scraper.exitExecution() and 

scraper.stopExecution() and 

scraper.finishExecutingProcessor() 

J'ai essayé de regarder dans la java doc, je ne pouvais pas trouver rien là-bas. Il semble qu'il n'y ait pas de documentation appropriée pour cela. S'il vous plaît aider.

J'ai besoin d'une méthode pour arrêter l'exécution du grattoir après un certain délai, Comment puis-je faire cela?

Répondre

1

Pourquoi ne pas simplement télécharger sourses de la bibliothèque et regarder à l'intérieur?

L'analyse du code source montre que la différence est uniquement dans les états dans lesquels ces fonctions sont définies.

STATUS_STOPPED est interprétée comme une configuration avortée par l'utilisateur. STATUS_EXIT est interprétée comme la configuration venait d'être terminée.

I.e. ils sont presque égaux.

Faisons ensemble:

One:

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

Deux:

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

Ensuite, allez BaseProcessor classe, c'est l'un des deux endroits où STATUS_EXIT ou STATUS_STOPPED les statuts sont utilisés:

public Variable run(Scraper scraper, ScraperContext context) { 
     int scraperStatus = scraper.getStatus(); 

     if (scraperStatus == Scraper.STATUS_STOPPED || scraperStatus == Scraper.STATUS_EXIT) { 
      return EmptyVariable.INSTANCE; 
     } 
     ... 
} 

Un autre en classe 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); 
       } 
      }); 
     } 
... 
} 
+0

Merci pour la réponse. Y a-t-il moyen de terminer le grattoir pour qu'il n'attende pas trop longtemps pour obtenir les données de la page Web? – codeMan

Questions connexes