为了实现和维护并发抓取的属性信息提供线程安全的事务请求。TransactionRequest是一个抽象类自己不能设置Processor,却需要实现 TransactionCallBack接口。TransactionRequest是个复合的BasicRequest。他可以将多个PageRequest、BinaryRequest甚至TransactionRequest 自己的对象添加到child集合中,在下载过程中首先下载TransactionRequest中的所有childRequest,每个childRequest下载完成后使用notify方式逐步向上通知, 直到所有的child下载完成TransactionRequest回调 TransactionCallBack的callBack方法通知业务层这个TransactionRequest下载完成。
方法详细资料
getPipeline
public Pipeline getPipeline()
setPipeline
public void setPipeline(Pipeline pipeline)
addAttribute
public BasicRequest addAttribute(java.lang.String attribute, java.lang.Object value)
从类复制的说明:
BasicRequest
设置属性
指定者:
addAttribute
在类中BasicRequest
返回:
返回BasicRequest对象自身
getAttribute
public java.lang.Object getAttribute(java.lang.String attribute)
从类复制的说明:
BasicRequest
取得属性
指定者:
getAttribute
在类中BasicRequest
返回:
返回attribute属性对应的value。没有则返回null
addChildRequest
public void addChildRequest(BasicRequest request)
添加一个BasicRequest到TransactionRequest的child中
参数:
request
-iteratorChildRequests
public java.util.Iterator<BasicRequest> iteratorChildRequests()
返回这个TransactionRequest所有child的迭代器
返回:
notify
public void notify(int hashcode)
从类复制的说明:
BasicRequest
当子url或者当前url完成的时候回调
覆盖:
notify
在类中BasicRequest
参数:
hashcode
- 实际Request的hashCodecheckComplete
public void checkComplete()
检查是否所有的Request标记都不是false。如果是那么所有的Request已经请求完成和处理。