【发布时间】:2010-11-11 09:33:18
【问题描述】:
我想每 2 小时执行一次任务。 Python 有一个 Timer in Threading 模块,但它满足我的需要吗?如何自己生成合适的 Timer?
【问题讨论】:
-
你是想每两小时执行一次任务,还是想让 Python 脚本每两小时执行一次?
-
每2小时调用另一个python函数
我想每 2 小时执行一次任务。 Python 有一个 Timer in Threading 模块,但它满足我的需要吗?如何自己生成合适的 Timer?
【问题讨论】:
如果您希望您的代码每 2 小时运行一次,最简单的方法是使用 cron 或 取决于您的操作系统的类似调度程序
如果您希望您的程序每 n 秒调用一次函数(在您的情况下为 7200) 您可以使用线程和 event.wait。以下示例启动一个计时器,该计时器 每秒触发一次并将字符串打印到标准输出
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()
【讨论】:
这可以解决.......
import time
def fun1():
print "Hi "
while 1:
fun1()
time.sleep(5)
函数 fun1 将在每 5 秒后执行一次。但我不知道这是否是在特定时间后调用函数的好方法。这个解决方案有什么缺点吗?
【讨论】: