在运行heritrix过程中有个很重要的配置文件order.xml(这里面有很多配置的属性要慢慢的了解)这里面声明了运行过程中所需的所有属性
heritrix读取order.xml文件通过--org.archive.crawler.settings包下的XMLSettingsHandler类
一、order.xml文件的读取
1.要把order.xml文件封装到File中。
2.XMLSettingsHandler构造函数的参数就是那个File的对象。
3.在它父类的方法中有一个getOrder()方法 返回一个CrawlOrder的实例。
------------------------------------------------------------------------------------------
二、CrawlOrder的作用是干什么的?
org.archive.crawler.datamodel.CrawlOrder是抓取任务的起点,访问是通过它来得到任务的属性配置的。
这部分是书上的。。。
heritrix的中央处理器org.archive.crawler.framework.CrawlController
在这个类中的一些属性:
------------------------------------------------------------------------------------------------
具体内容还不清楚还没写的现在算是一个摘抄吧
// key subcomponents which define and implement a crawl in progress
//AtomicInteger,一个提供原子操作的Integer的类。在Java语言中,++i和i++操作并不是线程安全的,在使用的时候,不可避免的会用到synchronized关键字。而AtomicInteger则通过一种线程安全的加减操作接口。
------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------
上面声明的组件关系和在CrawlController中的工作顺序是怎么样的?
CrawlController的实例化:有个不带参数的构造函数 实例化时需要完成以下任务
--------------------------------------------------------------------------------------------------
start中首先判断是否允许当前线程开始 不允许停止 允许 调用unpause()方法。
unpause()是将阻塞的线程信号设置为false,然后通过notifyAll()唤醒阻塞线程开始
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++