可能重复:
Suggestions for a Cron like scheduler in Python?在蟒蛇在特定时间间隔运行任务
会有什么安排,以作为后台任务定期运行的功能最Python的方式?有一些想法here,但他们都似乎相当丑陋的我。并且不完整。
java Timer类有一个非常完整的解决方案。任何人都知道类似的Python类?
可能重复:
Suggestions for a Cron like scheduler in Python?在蟒蛇在特定时间间隔运行任务
会有什么安排,以作为后台任务定期运行的功能最Python的方式?有一些想法here,但他们都似乎相当丑陋的我。并且不完整。
java Timer类有一个非常完整的解决方案。任何人都知道类似的Python类?
有一个方便的事件调度程序,可以做你所需要的。下面是该文档的链接:
在线程模块中有一个Timer类,但它是一次性定时器,所以你最好做一些你看到链接的东西。 http://code.activestate.com/recipes/65222/
为什么你认为这是丑陋的,一旦你写了这样的类用法就像在java中一样简单。
如果您在某些GUI中使用它,例如wxPython比它有wx.Timer你可以直接使用
不直接回答这个问题。
在Linux/Unix操作系统有办法很少这样做,通常我只写我的程序/脚本正常,然后将其添加到cron或类似的东西(如launchd在OS X)
响应问题从这里开始。
使用标准的python sched模块 - standard library documentation描述了一些漂亮的解决方案。
尝试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)
“很多程序员试图避免使用多线程代码,因为它在命令式编程中非常容易出错。” 稍有偏离主题,但我不认为这是避免多线程的好理由。关键是要做到这一点,充分理解内存一致性和锁定语义。 我同意这种程序设计经验有限的程序员应该在生产代码中使用这些技术之前大量投入学习和实践。 如果你想充分利用你的资源,在多核编程的时代避免它并不是一个真正可行的选择。 – Scruffers 2012-06-22 12:55:43
@Scraffers多线程难以想象(难以解决)(难以修复)(http://stackoverflow.com/questions/3830347/can-a-multi-threaded-program-ever-be-deterministic )),还有很多其他方式可以使用线程以外的多个内核。 – dbr 2012-09-10 23:08:32