在进程中每隔一段时间执行一次任务

时间:2010-11-11 09:33:18

标签: python timer

我想每2个小时执行一次任务。 Python有一个Timer in Threading模块,但是它能满足我的需求吗?我如何自己生成一个合适的计时器?

2 个答案:

答案 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秒后执行一次。但我不知道这是否是在特定时间后调用函数的好方法。这个解决方案的任何缺点?