运行 python 中的计划任务

Running scheduled task in python

我有一个 python 脚本,其中某项工作需要在每天早上 8 点完成。要做到这一点,我想的是有一个 while 循环来保持程序 运行ning 一直在 while 循环内使用 scheduler 类型包来指定特定子例程需要启动的时间。因此,如果在一天中的不同时间有其他例程 运行 这将起作用。

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

schedule.every().day.at("08:00").do(job,'It is 08:00')

然后让windows调度器运行这个程序完成。但我想知道这是否非常低效,因为 while 循环浪费了 cpu 个周期,而且随着程序将来变大,可能会冻结计算机。您能否建议是否有更有效的方法来安排需要同时执行的任务,而不必 运行 a while loop?

为什么要循环?为什么不让你的 Windows 调度程序或 Linux 计划任务 运行 你简单的 python 脚本做任何事情,然后停止?

随着时间的推移,维护往往会成为一个大问题,因此请尽量保持轻量化。

我注意到您对执行脚本有严格的要求。只需将 Windows 调度程序设置为在早上 8 点前几分钟启动脚本。脚本启动后,它将启动 运行 您的日程安排代码。完成任务后退出脚本。整个过程将在第二天重新开始。

这里是使用Python模块的正确方法schedule

from time import sleep
import schedule


def schedule_actions():

  # Every Day task() is called at 08:00
  schedule.every().day.at('08:00').do(job, variable="It is 08:00")

  # Checks whether a scheduled task is pending to run or not
  while True:
    schedule.run_pending()

    # set the sleep time to fit your needs
    sleep(1)


def job(variable):
    print(f"I'm working...{variable}")
    return


schedule_actions()

以下是我关于此主题的其他回答:

  • How schedule a job run at 8 PM CET using schedule package in python

  • Execute logic every X minutes (without cron)?