运行 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)?
我有一个 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)?