1

スケジューリングにはクオーツ+スプリングを使用しています。いくつかの静的データをメモリに保存し、それをジョブの反復ごとに使用したい場合、どうすればそれが可能になるでしょうか。

ありがとう

4

1 に答える 1

0

Quartz 1.8 を使用していると仮定します。Quartz 2.x は、実装をもう少し便利にするアノテーションを提供しますが、1.8 のコードを入手したら、それをそれらのアノテーションに置き換えるのは難しくありません。

  1. StateFulJobジョブがインターフェースを実装していることを確認してください。Quartz 2.x を使用する場合は、Job代わりにインターフェースを実装し、クラスに@PersistJobDataAfterExecution.
  2. JobDataMapジョブ コンテキストからwith を取得しcontext.getJobDetail().getJobDataMap()ます。
  3. これで、値を取得してそのマップに入れることができます。マップに入れた各値は、その後のジョブの実行で使用できるようになります。

に入れるすべてのオブジェクトJobDataMapがシリアライズ可能であることを確認してください。また、競合状態を防ぐために、ジョブを同時に実行しないように Quartz を構成します。

于 2013-07-05T11:05:47.237 に答える