2 つの異なるマシンで実行される webapp があります。webapp から、Quartz によって特定の時間に実行されるジョブを「注文」することができます。Quartz は webapp 内で実行されています。したがって、Quartz は 2 台のマシンのそれぞれで実行されます。ジョブ、トリガーなどを永続化するために JDBC データストアを使用しています。
ただし、マシンの 1 つだけがジョブを実行し、もう 1 つのマシンはクォーツのみを使用してジョブをスケジュールするという考え方です。したがって、スケジューラはいずれかのマシンでのみ開始 (scheduler.start()) されます。
ドキュメントでは、それは言う
非常に定期的に実行される何らかの形式の時刻同期サービス (デーモン) を使用してクロックが同期されていない限り (クロックは互いに 1 秒以内である必要があります)、別々のマシンでクラスタリングを実行しないでください。これを行う方法に慣れていない場合は、http://www.boulder.nist.gov/timefreq/service/its.htmを参照してください。
クラスター化されていないインスタンスを、他のインスタンスが実行 (start()) されているのと同じデータベース テーブルのセットに対して決して開始 (scheduler.start()) しないでください。重大なデータ破損が発生する可能性があり、間違いなく異常な動作が発生します。
また、webapp が実行されている 2 台のマシンのクロックが同期されているかどうかもわかりません。
私の質問は次のとおりです。Quartzインスタンスの1つだけが開始されてジョブを実行し、他のインスタンスは最初のインスタンスによって実行されるジョブのスケジュールにのみ使用される場合、このセットアップのクラスタリングモードでQuartzを実行する必要があります.