python 未安排 运行 所有作业
python schedule not running all the jobs
我正在使用 python schedule 模块在 heroku(Hobby Tier)实例上安排一堆(40 多个)每日重复作业。我运行一个脚本作为入口点(在每次重启机器时调用):
if __name__ == "__main__":
schedule.every().day.at(session_time).do(_run_leetcode_session, bot, chat_id, team_name=team_name)
在我安排的约 40 个工作中,看起来有些不是 运行。至。验证我 运行 以下调试脚本:
for job in schedule.jobs:
logging.info(job)
然后我得到以下日志
2020-03-05 23:06:31,606 - root - INFO - Every 1 day at 12:00:00 do _run_leetcode_session(<telegram.bot.Bot object at 0x7f9576039b50>, '-375976592', team_name='Leetcode Team 100') (last run: 2020-03-05 12:00:01, next run: 2020-03-06 12:00:00)
2020-03-05 23:06:31,606 - root - INFO - Every 1 day at 15:30:00 do _run_leetcode_session(<telegram.bot.Bot object at 0x7f9576039b50>, '-281586101', team_name='Leetcode Practice 201') (last run: [never], next run: 2020-03-05 15:30:00)
第一行没问题,但日志在第二行出现了非预期行为:
在 2020-03-05 23:06:31
,我被告知 (last run: [never], next run: 2020-03-05 15:30:00)
,实际上作业并未在 2020-03-05 15:30:00
执行,现在下一个 运行 日期已经过去。 如何解读?
这是库中的错误吗?机器有问题吗?线程设置有问题吗?
发生这种情况是因为 python schedule
模块 不会自动处理错误 ,所以如果一个作业中断,调度程序就会中断,所有后续作业都将被未执行。
一种变通方法是使用捕获这样的异常的实现SafeScheduler
我正在使用 python schedule 模块在 heroku(Hobby Tier)实例上安排一堆(40 多个)每日重复作业。我运行一个脚本作为入口点(在每次重启机器时调用):
if __name__ == "__main__":
schedule.every().day.at(session_time).do(_run_leetcode_session, bot, chat_id, team_name=team_name)
在我安排的约 40 个工作中,看起来有些不是 运行。至。验证我 运行 以下调试脚本:
for job in schedule.jobs:
logging.info(job)
然后我得到以下日志
2020-03-05 23:06:31,606 - root - INFO - Every 1 day at 12:00:00 do _run_leetcode_session(<telegram.bot.Bot object at 0x7f9576039b50>, '-375976592', team_name='Leetcode Team 100') (last run: 2020-03-05 12:00:01, next run: 2020-03-06 12:00:00)
2020-03-05 23:06:31,606 - root - INFO - Every 1 day at 15:30:00 do _run_leetcode_session(<telegram.bot.Bot object at 0x7f9576039b50>, '-281586101', team_name='Leetcode Practice 201') (last run: [never], next run: 2020-03-05 15:30:00)
第一行没问题,但日志在第二行出现了非预期行为:
在 2020-03-05 23:06:31
,我被告知 (last run: [never], next run: 2020-03-05 15:30:00)
,实际上作业并未在 2020-03-05 15:30:00
执行,现在下一个 运行 日期已经过去。 如何解读?
这是库中的错误吗?机器有问题吗?线程设置有问题吗?
发生这种情况是因为 python schedule
模块 不会自动处理错误 ,所以如果一个作业中断,调度程序就会中断,所有后续作业都将被未执行。
一种变通方法是使用捕获这样的异常的实现SafeScheduler