我正在尝试每小时使用“计划”模块计划一项任务。我的问题是我需要先运行任务,然后每小时重新运行一次。
此代码可以正常工作,但需要等待一个小时才能首次运行
import schedule
import time
def job():
print("This happens every hour")
schedule.every().hour.do(job)
while True:
schedule.run_pending()
我想避免这样做:
import schedule
import time
def job():
print("This happens immediately then every hour")
schedule.every().hour.do(job)
while i == 0:
job()
i = i+1
while i == 1:
schedule.run_pending()
理想情况下,具有这样的选项会很好:
schedule.run_pending_now()
答案 0 :(得分:0)
最简单解决方案可能是立即运行它并对其进行调度,例如:
import schedule
import time
def job():
print("This happens every hour")
schedule.every().hour.do(job)
job() # Runs now.
while True:
schedule.run_pending() # Runs every hour, starting one hour from now.
答案 1 :(得分:0)
要运行所有作业,无论它们是否计划运行,请使用 schedule.run_all()
。作业在完成后重新安排,就像使用 run_pending()
执行一样。
def job_1():
print('Foo')
def job_2():
print('Bar')
schedule.every().monday.at("12:40").do(job_1)
schedule.every().tuesday.at("16:40").do(job_2)
schedule.run_all()
# Add the delay_seconds argument to run the jobs with a number
# of seconds delay in between.
schedule.run_all(delay_seconds=10)```