我想每2个小时执行一次任务。 Python有一个Timer in Threading模块,但是它能满足我的需求吗?我如何自己生成一个合适的计时器?
答案 0 :(得分:17)
如果您希望每2小时运行一次代码,最简单的方法就是使用cron或 一个类似的调度程序,具体取决于您的操作系统
如果你希望你的程序每n秒调用一次函数(在你的情况下为7200) 你可以使用一个线程和event.wait。以下示例启动一个计时器 每秒触发一次并将字符串打印到stdout
import threading
import time
class TimerClass(threading.Thread):
def __init__(self):
threading.Thread.__init__(self)
self.event = threading.Event()
def run(self):
while not self.event.is_set():
print "do something"
self.event.wait( 1 )
def stop(self):
self.event.set()
tmr = TimerClass()
tmr.start()
time.sleep( 10 )
tmr.stop()
答案 1 :(得分:0)
这可以解决方案.......
import time
def fun1():
print "Hi "
while 1:
fun1()
time.sleep(5)
函数fun1将在每5秒后执行一次。但我不知道这是否是在特定时间后调用函数的好方法。这个解决方案的任何缺点?