私のアプリケーションは、現在使用してアプリケーションの起動時にデフォルトのスケジューラをインスタンス化し、起動します:クラスタ化されていないQuartzスケジューラ:アプリケーションの起動時にスケジューラをインスタンス化して起動する...これは複数のマシンで安全ですか?
@Override
public void contextInitialized(ServletContextEvent arg0) {
try {
Scheduler scheduler = StdSchedulerFactory.getDefaultScheduler();
scheduler.start();
} catch (SchedulerException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
このロジックは、クラウド・マシン上だけでなく、地元の開発マシン上で実行され、quartz.propertiesが現在非クラスタモードに設定されています。アプリケーションはJDBCジョブストアも使用しています。
マシンごとに1つのスケジューラインスタンスが必要であることを心配しています。複数のマシンでQuartz Schedulerを管理する方法に関する推奨事項を教えてください。このユースケースではクラスタリングが必要ですか?
毎分テストトリガーを実行するようにスケジュールを設定しました。雇用の重複はありませんでしたが、失業とはみなされなかった少数の火災が発生したことに気付きました。
あなたはユースケースを詳しく説明できますか?あなたが何を記述しているかはあまり明確ではありません。あなたのユースケースは、クラスタを形成することによって負荷を共有するために複数のインスタンスを必要とするか、永続性サポートを探しているだけですか?各ノードが自分の作業負荷を管理していますか? – Srinivas
@Srinivasの設定を変えて遊んだ後、私はこのアプリで動作する設定を見つけました。私はそれについて以下の答えで詳しく書くつもりです。 – plsplox