2012-08-14 49 views

回答

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了解更多详情。

0

列“TRIGGER_STATE”显示每个作业的状态,包括失火的:

SELECT * 
FROM QRTZ_TRIGGERS 
WHERE TRIGGER_STATE = 'MISFIRED' 

还我想建议期间几分钟的时间间隔运行此查询

SELECT TRIGGER_STATE, COUNT(*) 
FROM QRTZ_TRIGGERS 
GROUP BY TRIGGER_STATE 
ORDER BY TRIGGER_STATE 

,以查看触发机制的更动态行为。

+0

你是如何得到这个查询的?我无法打开石英查询日志..在我的Web应用程序中..你能帮我解决吗? – dhroove 2014-09-01 04:36:29

+0

直接检查QRTZ_TRIGGERS表格的内容。你可以在你的数据库中找到它吗? – 2014-09-02 04:20:26

+0

哦..我的意思是说...你是如何从应用程序中获得这个查询的?更具体的..你必须打开应用程序中的日志才能得到确切的查询......你是怎么做到的? – dhroove 2014-09-03 10:07:16