MisfireHandler: Error handling misfires: Couldn't store trigger '218111-TRIGGER' for '218111' job:The job (xx-JOBGROUP.218111) referenced by the trigger does not exist. org.quartz.JobPersistenceException: Couldn't store trigger '218111-TRIGGER' for '218111' job:The job (xx-JOBGROUP.218111) referenced by the trigger does not exist.

这是因为qrtz_triggers表中有2188111的调度时间信息,但是在qrtz_job_details表里缺少了2188111的数据,导致quartz调度更新触发器表的时候发现数据不完整而报错,也就没有调度。只要从qrtz_triggers和qrtz_cron_triggers表中删除掉该数据即可。

select * 
-- DELETE
from qrtz_triggers where TRIGGER_NAME = '218111'  ;

select * 
-- DELETE
from qrtz_cron_triggers where TRIGGER_NAME = '218111';

select * 
-- DELETE 
from qrtz_job_details where JOB_NAME =218111 ;

下面提供一个全面排查这种数据的sql

SELECT
		j.JOB_NAME 
	FROM
		qrtz_triggers j
	LEFT JOIN qrtz_job_details t ON j.JOB_NAME = t.JOB_NAME
	LEFT JOIN qrtz_cron_triggers ct ON CONCAT(j.JOB_NAME, '-TRIGGER') = ct.TRIGGER_NAME
 
	WHERE
		j.JOB_GROUP = 'xx-JOBGROUP'
	AND (
		t.JOB_NAME IS NULL
		OR ct.TRIGGER_NAME IS NULL 
	)
UNION
-- 查询qrtz_job_details调度计划详情表中有但是qrtz_triggers,qrtz_cron_triggers或r_job表中没有的流程
	SELECT
		j.JOB_NAME 
	FROM
		qrtz_job_details j
	LEFT JOIN qrtz_triggers t ON j.JOB_NAME = t.JOB_NAME
	LEFT JOIN qrtz_cron_triggers ct ON CONCAT(j.JOB_NAME, '-TRIGGER') = ct.TRIGGER_NAME
 
	WHERE
		j.JOB_GROUP = 'xx-JOBGROUP'
	AND (
		t.JOB_NAME IS NULL
		OR ct.TRIGGER_NAME IS NULL
	)


 

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐