如何在永无止境的计划中不同时间安排不同的任务

时间:2018-05-10 01:31:39

标签: python scheduling python-multithreading

我将通过说我不是一个高级程序员来编写这个,我只编写了顺序运行并退出的程序。我现在要做的是编写一个我将启动的python脚本,它将每5分钟运行一次函数,每10分钟运行一次函数,并且无限期地执行。这是一些伪代码:

def RunMeEvery5min:
    do something

def RunMeEvery10min:
    do something

while True:
    every 5 minutes run RunMeEvery5min
    every 10 minutes run RunMeEvery10min
    do this forever until I kill the program

这是线程吗?如果这些任务基本没有关联,那么这无关紧要。我冒昧地猜测这是一种常见的编程问题,但我从来没有真正理解如何实现这一点,我甚至不知道要搜索什么。任何有用的示例或基本教程的链接都将非常赞赏!

谢谢!

2 个答案:

答案 0 :(得分:2)

也许这会对你有用https://github.com/dbader/schedule

import schedule
import time

def job():
     print("I'm working...")

schedule.every(10).minutes.do(job)

while True:
     schedule.run_pending()
     time.sleep(1)

答案 1 :(得分:0)

您可以使用Python标准库中的sched

import sched, time
from datetime import datetime

scheduler = sched.scheduler(time.time, time.sleep)

def execute_every_05mins():
    print(datetime.now().strftime("%H:%M:%S"))
    scheduler.enter(300, 0, execute_every_05mins, ())

def execute_every_10mins():
    print(datetime.now().strftime("%H:%M:%S"))
    scheduler.enter(600, 0, execute_every_10mins, ())

if __name__ == "__main__":
    scheduler.enter(0, 0, execute_every_05mins, ())
    scheduler.enter(0, 0, execute_every_10mins, ())
    scheduler.run()
相关问题