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

How to schedule different tasks at different times in never-ending program

首先我要说我不是高级程序员,我只编写过 运行 顺序并退出的程序。我现在想做的是编写一个我将启动的 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

所以这是线程化?任务是否排列并不重要,因为它们本质上是不相关的。我敢猜测这是一种常见的编程问题,但我从来没有真正理解如何完成它,我什至不知道要搜索什么。任何有用的示例或基本教程的链接都将 非常 感激不尽!

谢谢!

也许这会对你有所帮助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)

您可以使用 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()