7

Quartz の StatefulJob の正確な平均と StatefulJob がない場合の違いを教えてください。

4

3 に答える 3

12

StatefulJob インターフェイスは、2 つのことを提供します。

最初: 常に 1 つのジョブのみが実行されます

2番目: (SimpleTriggerBean) では、ジョブの実行期間について心配する必要はありません。これは、前の実行が終了してから遅延時間後に次の実行が行われることを意味します。

于 2012-08-11T11:55:20.270 に答える
2

StatefulJob guarantees only one job will be running at one time. For example, if you schedule your job to run every 1 minute, but your job took 5 minutes to complete, then the job will not be run again until the previous job has completed.

これは、常に 1 つのジョブのみが実行されていることを確認するのに役立ちます。

次のジョブは、前のジョブが完了した直後ではなく、次のスケジュールで実行されます。

于 2012-08-11T09:56:54.870 に答える
0
jobDetail.getJobDataMap().put("type","FULL");

この行は、ステートフルまたは非ステートフルを使用しているかどうかを決定します。

  1. 引数を渡す場合、ステートフルになります。
  2. statefull がなければ、execute メソッドで引数を渡す方法はありません
  3. 実行時にフル状態で値を変更すると、実行ジョブが失われ、同時処理時に再トリガーされません。
  4. 一度に 1 つのジョブのみが実行され、2 番目のジョブは最初のジョブが完了するまでスリープ状態になります。
  5. マルチ スケジューリング プロセスでは、2 番目のジョブ引数は、実行時に最初のジョブに共有されます。これは、マルチ スケジューリング プロセスの欠点の 1 つです。
于 2015-02-15T19:59:31.717 に答える