2 つの異なるインスタンスで実行されている Spring Web アプリケーションがあります。2 つのインスタンスは互いを認識せず、別々のサーバーで実行されます。
そのアプリケーションにはスケジュールされた Quartz ジョブがありますが、私の問題は、メール送信ジョブであるため、ジョブがインスタンスで同時に実行されるべきではないことです。重複したメールが送信される可能性があります。
RAMJobStore を使用していますが、JDBCJobStore が必要とするテーブルが多数あるため、JDBCJobStore はオプションではありません (内部制限により、多くのテーブルを作成する余裕はありません)。
私が考えた解決策: -ジョブが開始されるたびにチェックする必要がある単一の制御テーブルを作成する (同時実行の問題を回避するための反復可能な読み取り分離レベルを使用) 問題は、サーバーが強制終了された場合、テーブルが無効な状態。
-プロパティを使用して、単一のサーバーをジョブ実行サーバーとして定義します。問題は、そのサーバーがダウンした場合、ジョブの実行が停止することです
誰かがこの問題を経験したことがありますか?共有する考えはありますか?