2.twisted入门

twisted入门

1. callWhenRunning   callLater的使用
__author__ = ‘zhoukunpeng‘
from twisted.internet import reactor
import  time
def hello():
    print "hello from the reactor loop!"
def  printTime(aa):
    print time.localtime()
    print aa
reactor.callWhenRunning(hello)
reactor.callLater(3,printTime,123)
print "start the reactor"
reactor.run()
reactor.callWhenRunning(hello)  reactor.callLater(3,printTime,123)是reactor的两个注册器。 通过此两个注册器可以注册相关的回调函数。在条件满足时,自动回调。 由于twisted是单线程的,所以,回调函数中必须保证无拥塞!注意:注册回调函数时,可以指定参数的传递。且参数可以有默认值。

2.task.LoopingCall 的使用
还有一个常用的回调函数是:

from twisted.internet import task
task_test=task.LoopingCall(test)
task_test.start(60)   #立刻执行,以后每隔60s执行一次
加入递归调用后如下:
__author__ = ‘zhoukunpeng‘
from twisted.internet import reactor
import  time
def hello():
    print "hello from the reactor loop!"
def  printTime(aa):
    print time.localtime()
    print aa
    reactor.callLater(3,printTime,123)
reactor.callWhenRunning(hello)
reactor.callLater(3,printTime,123)
print "start the reactor"
reactor.run()

3.defer.callLater的使用

from twisted.internet import  reactorfrom twisted.internet.task import  deferLaterfrom twisted.internet.defer import  inlineCallbacks@inlineCallbacksdef sleep(seconds):    a=yield deferLater(reactor,seconds,lambda:None)print "sleep %s"%secondssleep(3)reactor.run()
时间: 2024-11-14 12:52:17

2.twisted入门的相关文章

Python Twisted 学习系列20(转载stulife最棒的Twisted入门教程)

第二十部分 轮子中的轮子: Twisted和Erlang 简介 在这个系列中,有一个事实我们还没有介绍,即混合同步的"普通Python"代码与异步Twisted代码不是一个简单的任务,因为在Twisted程序中阻滞不定时间将使异步模型的优势丧失殆尽. 如果你是初次接触异步编程,那么你得到的知识看起来有一些局限.你可以在Twisted框架内使用这些新技术,而不是在更广阔的一般Python代 码世界中.同时,当用Twisted工作时,你仅仅局限于那些专门为作为Twisted程序一部分所写的

Python Twisted 学习系列5(转载stulife最棒的Twisted入门教程)

第五部分:由Twisted支持的诗歌客户端 作者:[email protected] http://krondo.com/?p=1522译者:杨晓伟(采用意译) 第五部分:由Twited支持的诗歌下载服务客户端 你可以从这里从头开始阅读这个系列 抽象地构建客户端 在第四部分中,我们构建了第一个使用Twisted的客户端.它确实能很好地工作,但仍有提高的空间. 首先是,这个客户端竟然有创建网络端口并接收端口处的数据这样枯燥的代码.Twisted理应为我们实现这些例程性功能,省得我们每次写一个新的程

Python Twisted 学习系列19(转载stulife最棒的Twisted入门教程)

第十九部分 改变之前的想法 简介 Twisted是一个正在进展的项目,它的开发者会定期添加新的特性并且扩展旧的特性. 随着Twisted 10.1.0发布,开发者向 Deferred 类添加了一个新的特性—— cancellation ——这正是我们今天要研究的. 异步编程将请求和响应解耦了,如此又带来一个新的可能性:在请求结果和返回结果之间,你可能决定不再需要这个结果了.考虑一下 :doc:`p14` 中的诗歌代理服务器.下面是这个如何工作的,至少对于诗歌的第一次请求: 一个对诗歌的请求来了.

Python Twisted 学习系列10(转载stulife最棒的Twisted入门教程)

第十部分:增强defer功能的客户端 作者:[email protected]http://krondo.com/?p=1956译者:杨晓伟(采用意译) 第十部分:增强defer功能的客户端 可以从这里从头开始阅读这个系列. 版本5.0 现在我们将要向诗歌下载客户端添加一些新的处理逻辑,包括在第九部分提到要添加的功能.不过,首先我要说明一点:我并不知道如何实现Byronification引擎.那超出了我的编程能力范围.取而代之的,我想实现一个简单的功能,即Cummingsifier.其只是将诗歌

Python Twisted 学习系列11(转载stulife最棒的Twisted入门教程)

第十一部分:改进诗歌下载服务器 作者:[email protected]http://krondo.com/?p=2048译者:杨晓伟(采用意译) 第十一部分:改进诗歌下载服务器 你可以从这里从头阅读这个系列. 诗歌下载服务器 到目前为止,我们已经学习了大量关于诗歌下载客户端的Twisted的知识,接下来,我们使用Twisted重新实现我们的服务器端.利益于Twisted的抽象机制,接下来你会发现我们前面已经几乎全部学习到这部分知识了.其实现源码在twisted-server-1/fastpoe

Python Twisted 学习系列3(转载stulife最棒的Twisted入门教程)

第三部分:初步认识Twisted 作者:[email protected]http://krondo.com/?p=1333译者:杨晓伟(采用意译) 第三部分:开始认识Twisted 可以从这里从头开始阅读这个系列. 用twisted的方式实现前面的内容 最终我们将使用twisted的方式来重新实现我们前面的异步模式客户端.不过,首先我们先稍微写点简单的twisted程序来认识一下twisted. 最最简单的twisted程序就是下面的代码,其在twisted-intro目录中的basic-tw

Python Twisted 学习系列6(转载stulife最棒的Twisted入门教程)

第六部分:抽象地利用Twisted 作者:[email protected]http://krondo.com/?p=1595译者:杨晓伟(采用意译) 第六部分:抽象地利用Twisted 你可以从这里从头开始阅读这个系列. 打造可以复用的诗歌下载客户端 我们在实现客户端上已经花了大量的工作.最新版本的(2.0)客户端使用了Transports,Protocols和Protocol Factories,即整个Twisted的网络框架.但仍有大的改进空间.2.0版本的客户端只能在命令行里下载诗歌.这

Python Twisted 学习系列1(转载stulife最棒的Twisted入门教程)

第一部分:Twisted理论基础 作者:[email protected]http://krondo.com/?p=1209译者:杨晓伟(采用意译) 前言: 最近有人在Twisted邮件列表中提出诸如”为任务紧急的人提供一份Twisted介绍”的的需求.值得提前透露的是,这个序列并不会如他们所愿.尤其是介绍Twisted框架和基于Python 的异步编程而言,可能短时间无法讲清楚.因此,如果你时间紧急,这恐怕不是你想找的资料. 我相信如果对异步编程模型一无所知,快速的介绍同样无法让你对其有所理解

Python Twisted 学习系列7(转载stulife最棒的Twisted入门教程)

第七部分:小插曲,Deferred 作者:[email protected]http://krondo.com/?p=1682译者:杨晓伟(采用意译) 第七部分:小插曲,Deferred 你可以从这里从头开始阅读这个系列 回调函数的后序发展 在第六部分我们认识这样一个情况:回调是Twisted异步编程中的基础.除了与reactor交互外,回调可以安插在任何我们写的Twisted结构内.因此在使用Twisted或其它基于reactor的异步编程体系时,都意味需要将我们的代码组织成一系列由react