2010-11-11 98 views
7

我想每2小时执行一次任务。 Python在Threading模块中有一个Timer,但它是否满足我的需求?我如何自己生成适当的Timer?在进程内每隔一段时间执行一次任务

+2

您是否想每两小时执行一次任务,还是希望Python脚本每两小时执行一次? – 2010-11-11 09:39:53

+0

每2小时调用一次python函数 – 2010-11-11 11:39:24

回答

17

如果您希望您的代码来运行每2个小时的最简单方法是使用cron或 类似的调度根据您的操作系统

上,如果你希望你的PROGRAMM调用一个函数每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() 
+0

Thx for your reply。它运行良好,我学到了。 – 2010-11-11 11:46:25

+0

@wok为什么?启动被调用一次,并用于执行设置,运行是做你想做的工作的方法 – 2010-11-11 13:13:45

+0

我对继承的错误。 – Wok 2010-11-11 13:17:14

0

这可能是一个解决办法.......

import time 

    def fun1(): 
     print "Hi " 

    while 1: 

     fun1() 
     time.sleep(5) 

功能FUN1将被执行每5秒后。但我不知道这是否是在特定时间后调用函数的好方法。这个解决方案的任何缺点?

相关问题