Quartz调度大量新任务:调度线程频繁唤醒及查询优化咨询
Quartz调度线程频繁唤醒问题的排查与核心发现
针对你遇到的问题,我梳理出以下关键点:
- 不合理的现象:重复调度未来触发的任务(例如7天后执行)时,调度线程持续被唤醒,每秒多次执行开销高昂的
find jobs查询,完全没有必要。 - 源码层面的触发逻辑:研究Quartz源码后发现,
QuartzScheduler.scheduleJob方法会调用notifySchedulerThread方法,而该方法是否实际触发调度线程唤醒,由布尔值signalOnSchedulingChange控制。若这个值为true,每次调度任务都会唤醒线程,哪怕任务是远期执行的。
内容的提问来源于stack exchange,提问作者davidfrancis
相关产品推荐
相关产品推荐

