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已经请求完毕和处理。

时间: 2024-12-18 19:12:15

GuozhongCrawler系列教程 (5) TransactionRequest具体解释的相关文章

GuozhongCrawler系列教程 (1) 三大PageDownloader

GuozhongCrawler  QQ群 202568714 教程源代码下载地址:http://pan.baidu.com/s/1pJBmerL GuozhongCrawler内置三大PageDownloader.各自是採用HttpClient作为内核下载的DefaultPageDownloader.採用HtmlUnitDriver作为内核下载WebDriverDownloader.採用ChromeDriver调用浏览器作为内核下载的ChromeDriverDownloader. 当中Defau

GuozhongCrawler系列教程 (4) StartContext具体解释

StartContext是注入时全部seed的上下文信息假设爬虫在抓取过程其中须要共享一些变量.那么可使用StartContext作为容器. 构造器具体资料 StartContext public StartContext() 构造一个StartContext. 通经常使用来充当seedRequest的容器 StartContext public StartContext(java.lang.String url, java.lang.Class<? extends PageProcessor>

GuozhongCrawler系列教程 (5) TransactionRequest详解

为了实现和维护并发抓取的属性信息提供线程安全的事务请求.TransactionRequest是一个抽象类自己不能设置Processor,却需要实现 TransactionCallBack接口.TransactionRequest是个复合的BasicRequest.他可以将多个PageRequest.BinaryRequest甚至TransactionRequest 自己的对象添加到child集合中,在下载过程中首先下载TransactionRequest中的所有childRequest,每个ch

GuozhongCrawler系列教程 (2) CrawTaskBuilder详解

CrawTaskBuilder是GuozhongCrawler中 CrawTask的建造者.为CrawlTask爬虫任务的创建增加了不少的便捷性. 方法详细资料 useThread public CrawTaskBuilder useThread(int threadNum) 设置CrawlTask下载处理Request的线程数量 参数: threadNum - 返回: CrawTaskBuilder usePipeline public CrawTaskBuilder usePipeline(

史上最详细的Android Studio系列教程一--下载和安装

链接地址:http://segmentfault.com/a/1190000002401964#articleHeader4 原文链接:http://stormzhang.com/devtools/2014/11/25/android-studio-tutorial1/ 背景 相信大家对Android Studio已经不陌生了,Android Studio是Google于2013 I/O大会针对Android开发推出的新的开发工具,目前很多开源项目都已经在采用,Google的更新速度也很快,明显

Java NIO 系列教程(转)

原文中说了最重要的3个概念,Channel 通道Buffer 缓冲区Selector 选择器其中Channel对应以前的流,Buffer不是什么新东西,Selector是因为nio可以使用异步的非堵塞模式才加入的东西.以前的流总是堵塞的,一个线程只要对它进行操作,其它操作就会被堵塞,也就相当于水管没有阀门,你伸手接水的时候,不管水到了没有,你就都只能耗在接水(流)上.nio的Channel的加入,相当于增加了水龙头(有阀门),虽然一个时刻也只能接一个水管的水,但依赖轮换策略,在水量不大的时候,各

C#微信公众号开发系列教程二(新手接入指南)

http://www.cnblogs.com/zskbll/p/4093954.html 此系列前面已经更新了两篇博文了,都是微信开发的前期准备工作,现在切入正题,本篇讲解新手接入的步骤与方法,大神可直接跳过,也欢迎大神吐槽. 目录 C#微信公众号开发系列教程一(调试环境部署) C#微信公众号开发系列教程一(调试环境部署续:vs远程调试) C#微信公众号开发系列教程二(新手接入指南) 微信公众平台消息接口的工作原理大概可以这样理解:从用户端到公众号端一个流程是这样的,用户发送消息到微信服务器,微

【REACT NATIVE 系列教程之十三】利用LISTVIEW与TEXTINPUT制作聊天/对话框&&获取组件实例常用的两种方式

本站文章均为 李华明Himi 原创,转载务必在明显处注明: 转载自[黑米GameDev街区] 原文链接: http://www.himigame.com/react-native/2346.html 本篇Himi来利用ListView和TextInput这两种组件实现对话.聊天框. 首先需要准备的有几点:(组件的学习就不赘述了,简单且官方有文档) 1. 学习下 ListView: 官方示例:http://reactnative.cn/docs/0.27/tutorial.html#content

Java NIO 系列教程

转载于http://www.iteye.com/magazines/132-Java-NIO Java NIO(New IO)是从Java 1.4版本开始引入的一个新的IO API,可以替代标准的Java IO API.本系列教程将有助于你学习和理解Java NIO.感谢并发编程网的翻译和投递. (关注ITeye官微,随时随地查看最新开发资讯.技术文章.) Java NIO提供了与标准IO不同的IO工作方式: Channels and Buffers(通道和缓冲区):标准的IO基于字节流和字符流