7

私はクォーツでスプリングを使用していますが、すべて正常に動作していますが、以前に構成されたトリガーの一部もクォーツテーブルに保存されているため実行されました。構成されていないすべてのトリガーを手動で削除してアプリケーションを実行することはできますが、それは良い方法ではありません。spring+quartz プロパティまたはその他のソリューションを使用して、すべてのトリガーを削除したいと考えています。

春の設定ファイルで3つのトリガーを設定した場合

<property name="triggers">
    <list>
        <ref bean="FirstTrigger" />
        <ref bean="secondTrigger" />
        <ref bean="ThirdTrigger"/>
    </list>
</property>

サーバーが起動すると、対応する cron トリガーとジョブの詳細とともにすべてのトリガーが Quartz テーブルに格納されます。たとえば、構成内のトリガーのいずれかを削除すると、上記のように 2 番目のトリガーが削除されましたが、Quartz テーブルからは削除されませんでした。その際、DBtrigger(削除されたトリガー)も実行されました。

春とクォーツの統合では、この問題を処理するプロパティはありますか、それともこの問題に対して何か他のことをする必要がありますか?

前もって感謝します。

4

2 に答える 2

5

トリガーをDBに保存する場合(トリガーがcronベースであると仮定)、次のようにレコードを簡単に削除できます。

DELETE FROM QRTZ_CRON_TRIGGERS WHERE SCHED_NAME='scheduler' and TRIGGER_NAME='myTrigger' and TRIGGER_GROUP='DEFAULT';
DELETE FROM QRTZ_TRIGGERS WHERE SCHED_NAME='scheduler' and TRIGGER_NAME='myTrigger' and TRIGGER_GROUP='DEFAULT';

他の Quartz DB テーブルを調べて、仕事に関連する残り物を見つけることも検討してください。

于 2014-12-03T10:54:08.277 に答える
1

Quartz APIを使用して、Quartz スケジューラ、ジョブ、トリガーなどにアクセスできます。

このQuartz CookBookを見てください。定義されているすべてのトリガーを一覧表示する方法などがわかります。おそらく、この API を使用して不要なトリガーを削除する必要があります。

于 2013-02-07T10:21:17.330 に答える