3

定期サービスを開発しています。

アプリケーションは、JDK 1.6、Spring Framework 2.5.6、Quartz 1.8.4 を使用して開発され、ジョブをスケジュールします。

WebLogic Server 10.3.5 で 2 つのクラスタ サーバーを使用しています。

私が気付いた動作は、ジョブがアプリケーションから削除 (または名前変更) された場合、Quartz は古いジョブ (Quartz がそのインスタンスを同期するために使用するデータベースに登録されているようです) を起動しようとし続けることです。

誰かがこの動作の理由を説明できますか?

アプリケーションでジョブを削除して WebLogic インスタンスを再起動したときに、Quartz が古いジョブを起動しようとしないようにする必要があります。

前もって感謝します

4

1 に答える 1

2

Quartz スケジューラーからジョブを明示的に削除する必要があります。たとえば、この scheduler がある場合

private org.quartz.Scheduler myScheduler = null;

次を呼び出す必要があります。

myScheduler.deleteJob(...

ジョブが削除または名前変更されたとき。

もしそうなら、おそらくあなたは間違ったキーを渡していますか?

または、Quartz ジョブを作成するときに、以下を使用できます。jobBuilder.storeDurably(false) これにより、Quartz ジョブに関連付けられているアクティブなトリガーがなくなったときに、Quartz ジョブが自動的に削除されます。

于 2013-03-29T10:26:23.253 に答える