我想编写一个 SQL 脚本来获得失败的工作,有一些像 QRTZ_TRIGGERS 这样的表,我该如何实现 sql?也许比较 next_fire_time + misfireThreshold< now()?
问问题
3910 次
2 回答
1
它是这样的:
SELECT TRIGGER_NAME
FROM QRTZ_TRIGGERS
WHERE NOT (MISFIRE_INSTR = -1)
AND NEXT_FIRE_TIME < 1345050693000
AND TRIGGER_STATE = 'WAITING'
基本上,您要求所有等待触发器的NEXT_FIRE_TIME
参数远在过去。多远?Quartz 假设所有org.quartz.jobStore.misfireThreshold
迟到的触发器都会失火。默认情况下,如果触发器被安排在一分钟前运行,则 Quartz 将其视为未触发。所以采取:
new Date() - 60 * 1000 * 1000
有关StdJDBCConstants
更多详细信息,请参阅。
于 2012-08-15T17:18:10.187 回答
0
“TRIGGER_STATE”列显示每个作业的状态,包括 MISFIRED 的:
SELECT *
FROM QRTZ_TRIGGERS
WHERE TRIGGER_STATE = 'MISFIRED'
我还想建议运行此查询
SELECT TRIGGER_STATE, COUNT(*)
FROM QRTZ_TRIGGERS
GROUP BY TRIGGER_STATE
ORDER BY TRIGGER_STATE
在几分钟的时间间隔内,查看触发机制的更加动态的行为。
于 2014-07-05T12:28:17.877 回答