0

QRTZ_TRIGGERS のようなテーブルがいくつかありますが、SQL を実装するにはどうすればよいですか? たぶん、next_fire_time + misfireThreshold< now() を比較しますか?

4

2 に答える 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が不発であると想定します。デフォルトでは、1 分以上前に実行するようにスケジュールされていた場合、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 に答える