python手工执行可以、定时任务不行_python - 如何解决apscheduler定时任务自动重启,导致定点执行的任务未执行完成...

使用apscheduler定时执行多个任务,有的任务某个时间点执行一次,有的任务每隔一段时间执行一次;添加任务的时候使用scheduled_job装饰器,没有使用add_job方法;

现在的问题是,启动apscheduler所有的定时任务后,过一段时间,apscheduler的任务会自动重启,导致那些定点执行一次的任务没有执行完成;

执行定时任务的过程中涉及mysql查询操作,其中mysql有主从库;

从日志中查看,当定时任务查询主库的时候,apscheduler任务不会重启;而访问从库的时候,程序会重新连接数据库,定时任务就会重新加载;

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

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

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

a4d9c661cb4de116aa1de6f08382e6d2.png

1e9ba6950540a801088ce02744ec140d.png,

添加misfire_grace_time的参数

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值