GuozhongCrawler系列教程 (5) TransactionRequest详解

      为了实现和维护并发抓取的属性信息提供线程安全的事务请求。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的hashCode

  • checkComplete
    public void checkComplete()

    检查是否所有的Request标记都不是false。如果是那么所有的Request已经请求完成和处理。


转载于:https://my.oschina.net/u/1377701/blog/464560

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值