Quartz でタスクをスケジュールする場合、失火と再スケジュールを設定できます。これは、30 分ごとに実行されるジョブがあり、潜在的にバックログがあり、ジョブが 30 分以上実行されるシナリオ例で使用できます。同じジョブが 2 回実行されるのを防ぐには、@DisallowConcurrentExecution
. ジョブが完了すると、 を使用してキューに入れられた 2 番目のインスタンスが実行されsimpleSchedule().withMisfireHandlingInstructionNowWithExistingCount()
ます。
現在、Spring Scheduler には、このきめの細かい機能はないようです。30 分ごとにスケジュールするか、前のジョブが完了してから 30 分待つかのオプションのみがfixed-rate
あります。fixed-delay
単一のスレッドに制限するハンマー ルートを使用せずに、同時に実行する他のバッチ ジョブのスレッド数を増やしたいので、Quartz の動作を再現する最良の方法は何でしょうか?