Quartz动态定时任务失效的原因可能有以下几种:
- 数据库持久化调度任务的同时采用了集群模式部署,不同的调度任务会被分配到不同的节点执行,某个节点故障可能会导致任务执行出问题。
- Quartz执行线程数太小,并发的任务太多,导致任务等待超时,而任务等待有一个超时时间阈值,如果等待的任务大于这个时间,Quartz会根据程序设置的misfire处理策略来决定行为,如果设置的是
MISFIRE_INSTRUCTION_DO_NOTHING策略,那么错过的任务不会执行。
- 任务执行的方法中数据量过大,导致方法执行过久,超过了定时任务的间隔时间,从而导致任务无法正常执行。