为未来安排任务(Scheduling tasks for the future)
-- Jerry Marx 于 [2004-09-11 02:42:25] 最后编辑该页
Contents
Let's say we want to run a task X seconds in the future. The way to do that is defined in the reactor interface twisted.internet.interfaces.IReactorTime:
我们想再x秒后执行一个任务,可以使用twisted.internet.interfaces.IReactorTime:
1 from twisted.internet import reactor
2
3 def f(s):
4 print "this will run 3.5 seconds after it was scheduled: %s" % s
5
6 reactor.callLater(3.5, f, "hello, world")
If we want a task to run every X seconds repeatedly, we can use twisted.internet.task.LoopingCall:
如果想每x秒就重复执行一个任务,可以使用twisted.internet.task.LoopingCall:
1 from twisted.internet import task
2
3 def runEverySecond():
4 print "a second has passed"
5
6 l = task.LoopingCall(runEverySecond)
7 l.start(1.0) # call every second
8
9 # l.stop() will stop the looping calls
If we want to cancel a task that we've scheduled:
如果想要取消一个已经安排的任务:
1 from twisted.internet import reactor
2
3 def f():
4 print "I'll never run."
5
6 callID = reactor.callLater(5, f)
7 callID.cancel()
- 翻译 -- Jerry Marx.
Version: 1.3.0