【发布时间】:2010-11-05 13:13:54
【问题描述】:
安排函数作为后台任务定期运行的最 Pythonic 方式是什么?有一些想法here,但在我看来它们都相当难看。而且不完整。
javaTimer类有一个非常完整的解决方案。有人知道类似的python类吗?
【问题讨论】:
安排函数作为后台任务定期运行的最 Pythonic 方式是什么?有一些想法here,但在我看来它们都相当难看。而且不完整。
javaTimer类有一个非常完整的解决方案。有人知道类似的python类吗?
【问题讨论】:
有一个方便的事件调度程序可以满足您的需要。这是文档的链接:
【讨论】:
试试multiprocessing 模块。
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 模块 - standard library documentation 描述了一些漂亮的解决方案。
【讨论】:
Python 在线程模块中有一个 Timer 类,但它是一次性计时器,所以你最好按照你看到的链接做一些事情。 http://code.activestate.com/recipes/65222/
你为什么觉得那很难看,一旦你写了这样一个类的用法就会像在java中一样简单。
如果您在某些 GUI 中使用它,例如wxPython 比它有 wx.Timer ,你可以直接使用
【讨论】: