素材牛VIP会员
如何解决apscheduler定时任务自动重启,导致定点执行的任务未执行完成
 Co***ht  分类:Python  人气:2116  回帖:2  发布于6年前 收藏

使用apscheduler定时执行多个任务,有的任务某个时间点执行一次,有的任务每隔一段时间执行一次;添加任务的时候使用scheduled_job装饰器,没有使用add_job方法;
现在的问题是,启动apscheduler所有的定时任务后,过一段时间,apscheduler的任务会自动重启,导致那些定点执行一次的任务没有执行完成;

执行定时任务的过程中涉及mysql查询操作,其中mysql有主从库;
从日志中查看,当定时任务查询主库的时候,apscheduler任务不会重启;而访问从库的时候,程序会重新连接数据库,定时任务就会重新加载;

难道重连mysql会导致定时任务重启????

 标签:python

讨论这个帖子(2)垃圾回帖将一律封号处理……

Lv5 码农
em***co PHP开发工程师 6年前#1

添加misfire_grace_time的参数

Lv5 码农
38***38 职业无 6年前#2

misfire_grace_time 这个参数的前提是使用可持续化的jobstore,如果使用默认内存的jobstore,这个参数是没有意义的。

一般需要使用misfire_grace_time的场景,就是但是那个持久化jobstore的服务挂掉了,任务需要被调度的时候没有被调度成功,后期持久化的jobstore启动了,这个任务重新被调度了(从jobstore中获取job),misfire_grace_time决定这个任务在错过执行时间之后还需不需要执行

 文明上网,理性发言!   😉 阿里云幸运券,戳我领取