您的位置:首页 > 其它

深入学习Heritrix---解析CrawlController

2008-10-11 23:59 567 查看
当我们以Web UI方式使用Heritrix时,点击任务开始(start)按钮时,Heritrix就开始了它的爬取工作.但它的内部

执行流程是怎样的呢?别急,下面将慢慢道来.

(一)CrawlJobHandler

当点击任务开始(start)按钮时,将执行它的startCrawler()方法:

if(sAction.equalsIgnoreCase("start"))

{

// Tell handler to start crawl job

handler.startCrawler();

}

再来看看startCrawler()方法的执行:

Code

public void requestCrawlStart() {

//初始化处理器链

runProcessorInitialTasks();

sendCrawlStateChangeEvent(STARTED, CrawlJob.STATUS_PENDING);

String jobState;

state = RUNNING;

jobState = CrawlJob.STATUS_RUNNING;

sendCrawlStateChangeEvent(this.state, jobState);

// A proper exit will change this value.

this.sExit = CrawlJob.STATUS_FINISHED_ABNORMAL;

Thread statLogger = new Thread(statistics);

statLogger.setName("StatLogger");

//开始日志线程

statLogger.start();

//启运Frontier,抓取工作开始

frontier.start();

}
可以看出,做了那么多工作,最终将启动Frontier的start方法,而Frontier将为线程池的线程提供URI,真正开始

抓取任务.至此,抓取任务开始.

主要参考:开发自己的搜索引擎—Lucene 2.0+Heritrix
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: