关于计时器:在python中以特定的时间间隔运行任务

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你可以直接使用