Run a task at specific intervals in python
Possible Duplicate:
Suggestions for a Cron like scheduler in Python?
安排函数作为后台任务定期运行的最pythonic方法是什么? 这里有一些想法,但它们对我来说都显得相当难看。 而且不完整。
java Timer类有一个非常完整的解决方案。 有人知道类似的python类吗?
有一个方便的事件调度程序可能会做你需要的。这是文档的链接:
http://docs.python.org/library/sched.html
尝试多处理模块。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | from multiprocessing import Process import time def doWork(): while True: print"working...." time.sleep(10) if __name__ =="__main__": p = Process(target=doWork) p.start() while True: time.sleep(60) |
不直接回答这个问题。
在Linux / Unix操作系统上,有几种方法可以这样做,通常我只是正常编写程序/脚本,然后将其添加到cron或类似的东西(如OS X上的launchd)
这个问题的答案从这里开始。
使用标准的python sched模块 - 标准库文档描述了一些漂亮的解决方案。
许多程序员试图避免使用多线程代码,因为在命令式编程中它很容易出错。
如果您想在单线程环境中执行计划任务,那么您可能需要某种"Reactor"。您可能想要使用像Twisted这样的现成品。
然后它将是您的reactor提供的基本功能,例如(使用pygame):
pygame.time.set_timer - repeatedly create an event on the event queue
Python在线程模块中有一个Timer类,但这是一次性计时器,所以你可以更好地做一些看到链接的东西。
http://code.activestate.com/recipes/65222/
为什么你认为这很丑,一旦你写完这样的类用法就像在java中一样简单。
如果你在一些GUI中使用它,例如wxPython比它有wx.Timer你可以直接使用