爬虫日记(99):Twisted的Deferred重新审视

Posted caimouse

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了爬虫日记(99):Twisted的Deferred重新审视相关的知识,希望对你有一定的参考价值。

在前面的例子可以看到,回调函数是事件循环框架异步编程的基本方式,只有使用回调函数才能把用户的代码,插入到框架的事件循环里运行,这是所有事件循环框架的基本要求,也是它的基本内容,因此Twisted框架也不例外,它的基本开发方式就是编写一串又一串的回调函数链,让整个回调管理更加方便。

由前面的例子来看,最简单的回调处理,就有两个回调函数:一个是正常的回调,一个是错误的回调。我们要成为Twisted的开发人员,就要思考怎么样让这些回调函数更加容易管理,避免一些陷阱。

Twisted为了管理回调函数方便,添加了一个叫做Deferred类,这个类定义在twisted.internet.defer里。当创建一个Deferred类对象时,这个对象就包含两条回调链,一条是正常的回调链,一条是异步的回调链。我们可以往这两条链里添加任意个回调函数,然后可以通过这个对象设置为那一种结果的回调,如果是正常结果就调用正常回调链的函数,如果是异常结果,就回调异常回调的函数。

以上是关于爬虫日记(99):Twisted的Deferred重新审视的主要内容,如果未能解决你的问题,请参考以下文章

爬虫日记(101):Twisted:使用Deferred重构异常代码

爬虫日记(102):Twisted:使用Deferred重构服务器代码

爬虫日记(81):Twisted的线程池使用

爬虫日记(79):Twisted的延时机制

爬虫日记(82):Twisted的线程返回值

爬虫日记(80):Twisted的循环任务