可以忽略分钟的调度程序

问题描述

如何在特定时间段(例如上午 9 点到 12 点之间)运行作业,每小时运行一次,而不考虑分钟数?有时候我用来跑作业的平台是9点02分开始的,所以经常9点没赶上。

解决方法

您可以设置一个计数器来计算它每天运行的时间。例如,每十分钟检查一次计数器的值是否正确。假设服务器在 9:02 和 9:10 开始,脚本检查计数器应该是 1 但应该是 0。在这种情况下,您只需运行该作业。我认为这可以解决您的问题。

,

如果你在谈论 apscheduler(基于标签),你可以设置一个更慷慨的失火宽限时间为 1 小时。

,

你可以试试simple-scheduler。以秒为单位为“reattempt_duration”分配所需的值,以防第一次尝试失败。您还可以控制重试次数。

from simple_scheduler.event import event_scheduler
event_scheduler.timezones()
TZ = "Asia/Kolkata"
WHEN = ["*|09:00","*|10:00","*|11:00","*|12:00"]

event_scheduler.add_job(target = your_job,when = WHEN,tz = TZ,number_of_reattempts=3,reattempt_duration=60*10,job_name = "your_job")
event_scheduler.job_summary()
event_scheduler.run()
event_scheduler.job_summary()

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...