quartz数据不完整导致不调度并且报错Couldn‘t store trigger

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
	)


 

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值