在Python中按特定间隔运行任务

15 投票
5 回答
47353 浏览
提问于 2025-04-15 12:28

可能重复的问题:
在Python中有没有类似Cron的调度器的建议?

有没有什么比较“Python风格”的方法,可以定期安排一个函数在后台运行呢?这里有一些想法 在这里,但我觉得它们都不太好看,而且不够完整。

Java的Timer类提供了一个非常完整的解决方案。有没有人知道Python中有没有类似的类?

相关问题:

5 个回答

7

很多程序员都尽量避免写多线程的代码,因为在命令式编程中,这种代码容易出错。

如果你想在单线程的环境中安排一个定时任务,那么你可能需要某种叫做“反应器模式”的东西。你可以考虑使用现成的,比如Twisted

然后,你的反应器会提供一个基本功能,比如(使用pygame时):

pygame.time.set_timer - 在事件队列中重复创建一个事件

9

可以试试 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)
12

有一个很方便的事件调度器,可能正好能满足你的需求。这里有个链接,可以查看相关的说明文档:

http://docs.python.org/library/sched.html

撰写回答