(本文档仅供参考)
问题:
系统中的计划任务未按照定时时间执行,如下图,计划是设定每天7:50执行,但是上次执行时间是昨天,但是下次执行时间已经到了明天,在计划任务调度日志中也没有查看到当天是运行中的记录,如何针对此类问题进行排查。50执行,上次执行时间是昨天,但是下次执行时间已经到了明天,在计划任务调度日志中也没有查看到当天是运行中的记录,如何针对此类问题进行排查。
跟进排查方案:
1、计划没有按时执行原因大致分为一下几种情况。
情况1:服务器繁忙延期,由于预定时间点服务器线程爆满,会导致计划延期直到服务器空闲时接入;
...
runningCount / totalCount 【待执行 waitingCount个】
代码块 | ||
---|---|---|
| ||
指标说明: 1、运行中的计划(runningCount): select count(1) from QRTZ_FIRED_TRIGGERS; 2、服务器数量(serverCount): select count(1) from QRTZ_SCHEDULER_STATE where LAST_CHECKIN_TIME + CHECKIN_INTERVAL > unix_timestamp(); 3、每台服务器最大并发数(threadCount): org_quartz_threadPool_threadCount=10 4、totalCount = serverCount * threadCount 当 runningCount >= totalCount ,超载(waitingCount): 5、待执行(waitingCount) select count(1) from QRTZ_TRIGGERS where NEXT_FIRE_TIME < unix_timestamp() and TRIGGER_STATE = 'WAITING'; |
...