DecideOnParsingTask.java
上传用户:qing5858
上传日期:2015-10-27
资源大小:6056k
文件大小:1k
源码类别:

搜索引擎

开发平台:

Java

  1. package net.javacoding.jspider.core.task.work;
  2. import net.javacoding.jspider.api.event.resource.ResourceIgnoredForParsingEvent;
  3. import net.javacoding.jspider.api.model.Decision;
  4. import net.javacoding.jspider.core.SpiderContext;
  5. import net.javacoding.jspider.core.util.URLUtil;
  6. import net.javacoding.jspider.core.storage.Storage;
  7. import net.javacoding.jspider.core.task.WorkerTask;
  8. import java.net.URL;
  9. public class DecideOnParsingTask extends BaseWorkerTaskImpl {
  10.     protected URL url;
  11.     public DecideOnParsingTask(SpiderContext context, URL url ) {
  12.         super(context, WorkerTask.WORKERTASK_THINKERTASK);
  13.         this.url = url;
  14.     }
  15.     public void prepare() {
  16.     }
  17.     public void execute() {
  18.         Storage storage = context.getStorage();
  19.         Decision parseDecision = context.getSiteParserRules(storage.getSiteDAO().find(URLUtil.getSiteURL(url))).applyRules(context, null, url);
  20.         storage.getDecisionDAO().saveParseDecision(storage.getResourceDAO().getResource(url), parseDecision);
  21.         if (parseDecision.getDecision() == Decision.RULE_ACCEPT || parseDecision.getDecision() == Decision.RULE_DONTCARE) {
  22.             context.getAgent().scheduleForParsing(url);
  23.         } else {
  24.             storage.getResourceDAO().setIgnoredForParsing(url);
  25.             context.getEventDispatcher().dispatch(new ResourceIgnoredForParsingEvent(storage.getResourceDAO().getResource(url)));
  26.         }
  27.     }
  28. }