1

如何更改此代码,以便每 60 秒调用一次 doWork()。目前,它正在循环播放,并在 60 秒后停止。想做完全相反的事情。

from twisted.internet import task
from twisted.internet import reactor
import twapi
timeout = 200.0 # Sixty seconds

def doWork():
    #do work here
    twapi.main('1')
    pass

l = task.LoopingCall(doWork)
l.start(timeout) # call every sixty seconds

reactor.run()
4

2 回答 2

5

来自官方 Twisted 文档

from twisted.internet import task
from twisted.internet import reactor

def runEverySecond():
    print "a second has passed"

l = task.LoopingCall(runEverySecond)
l.start(1.0) # call every second

reactor.run()
于 2012-05-20T12:13:51.400 回答
0

我修改了您的脚本以每分钟输出一次当前时间:

#!/usr/bin/python
from twisted.internet import task
from twisted.internet import reactor
from datetime import datetime as time
timeout = 60.0 # Sixty seconds

def doWork():
    #do work here
    print time.now().isoformat()

l = task.LoopingCall(doWork)
l.start(timeout) # call every sixty seconds

reactor.run()

它的工作原理是这样的:

2012-05-20T19:24:44.388682
2012-05-20T19:25:44.389788
2012-05-20T19:26:44.389424

我能看到的片段中的唯一问题是,您要求反应器每 200 秒调用一次您的函数,而不是 60 秒。

于 2012-05-20T12:30:12.893 回答