使用apscheduler定时执行多个任务,有的任务某个时间点执行一次,有的任务每隔一段时间执行一次;添加任务的时候使用scheduled_job装饰器,没有使用add_job方法;
现在的问题是,启动apscheduler所有的定时任务后,过一段时间,apscheduler的任务会自动重启,导致那些定点执行一次的任务没有执行完成;
执行定时任务的过程中涉及mysql查询操作,其中mysql有主从库;
从日志中查看,当定时任务查询主库的时候,apscheduler任务不会重启;而访问从库的时候,程序会重新连接数据库,定时任务就会重新加载;
难道重连mysql会导致定时任务重启????
misfire_grace_time このパラメータの前提は、持続可能なジョブストアを使用することです。デフォルトのメモリ ジョブストアを使用する場合、このパラメータは意味がありません。
一般に、misfire_grace_time を使用する必要があります。つまり、永続ジョブストア サービスがハングアップし、スケジュールする必要があるときにタスクが正常にスケジュールされません。その後、永続ジョブストアが開始され、タスクが再スケジュールされます。ジョブストア Get job)、misfire_grace_time は、実行時間を逃した後にこのタスクを実行する必要があるかどうかを決定します
misfire_grace_time パラメータを追加