찾다

 >  Q&A  >  본문

python - 如何解决apscheduler定时任务自动重启,导致定点执行的任务未执行完成

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

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

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

黄舟黄舟2803일 전1415

모든 응답(2)나는 대답할 것이다

  • 伊谢尔伦

    伊谢尔伦2017-04-17 15:03:06

    misfire_grace_time 이 매개변수의 전제는 지속 가능한 작업 저장소를 사용하는 것입니다. 기본 메모리 작업 저장소를 사용하는 경우 이 매개변수는 의미가 없습니다.

    일반적으로 misfire_grace_time을 사용해야 합니다. 즉, 영구 작업 저장소 서비스가 중단되고 작업을 예약해야 할 때 작업이 성공적으로 예약되지 않고 나중에 영구 작업 저장소가 시작되고 작업이 다시 예약됩니다. jobstore Get job), misfire_grace_time은 실행 시간을 놓친 후 이 작업을 실행해야 하는지 여부를 결정합니다

    회신하다
    0
  • 黄舟

    黄舟2017-04-17 15:03:06

    misfire_grace_time 매개변수 추가

    회신하다
    0
  • 취소회신하다