2012-05-20 46 views
1

如何更改此代码,以便每60秒调用一次doWork()。目前,它正在循环并在60秒后停止。想要做的确切相反。Python:如何更改此代码,以便我可以每60秒执行一次Work()一次?

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() 
+0

如果'twapi.main'不会在一分钟内返回,你会发生什么? – jfs

回答

5

oficial Twisted documentation

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() 
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.

相关问题