2

Sling のスケジューラを使用して定期的なジョブをスケジュールしていますが、ジョブ A を 5 分ごとに実行するようにスケジュールしているかどうか疑問に思っています。まれに、ジョブの実行が開始され、5 分以上かかることがあります。何が起こるでしょうか? ジョブを並行して実行できないことを指定しました。

  1. ジョブ A は、前回の実行が終了した直後に再度実行されます。
  2. ジョブ A は、前の実行が終了してから 5 分後に実行されます。

内部では、Sling のスケジューラは QuartzScheduler を使用しているため、この場合に QuartzScheduler がどのように動作するかを知っている場合は、知識も共有してください。

どんな助けでも大歓迎です!

4

1 に答える 1

1

Quartz Scheduler 2.1.x では、注釈 DisallowConcurrentExecutionを使用して、同じジョブの同時実行を防止します。

Quartz Scheduler 2.0.x では、ジョブの同時実行を無効にするために、StatefulJob インターフェイスを実装する必要があります。

前のジョブが完了したときにミスファイアされた実行が実行されるか、無視されるかの決定は、トリガーのミスファイア ポリシーによって異なります。デフォルトでは、スケジューラーが起動すると、不発になった持続トリガーが検索され、個別に設定された不発の指示に基づいてそれぞれが更新されます。

したがって、私の意見では、ジョブ A は、前回の実行が終了した直後に再度実行されます。Sling はデフォルトの失火ポリシーを使用していると思います。それ以外の場合、答えは失火ポリシーの選択によって異なります。

これが Quartz Scheduler の仕組みです。Sling のスケジューラがどのように機能するのかわかりません。

これが役立つことを願っています。

于 2012-09-04T19:02:59.290 に答える