2017-12-18 7 views
0

異なるユーザー入力で実行されるジョブクラスが1つあります。私は、JobDetailとTriggerの両方でJobDataMapを指定できることを認識しています。JobDetail JobDataMapとトリガー複数の入力を持つ1つのジョブのJobDataMap

(1)JobDetailのJobDataMap - ユーザーが新しい入力とスケジュールを指定したときに、それらの入力で新しいJobDetailを作成し、新しいトリガーを作成すると、2つの選択肢があります。その後、新しく作成したjobDetailとトリガをスケジューラに追加します。

(2)JobDataMap on Trigger - ユーザが新しい入力とスケジュールを指定したときに、それらの入力で新しいトリガを作成し、既に追加されたjobDetailのためのトリガをスケジューラに追加します。

オプションを優先する理由はありますか?

ありがとうございました。

答えて

0

私の個人的な経験から、最初のアプローチ(JobDetailの求人情報を指定)を使用すると言わなければなりません。

この決定を実行する主な理由は、理解して維持するのがよりシンプルで清潔に思えます。

  • すると、ユーザーのスケジュール特定のパラメータを持つジョブ、我々はそれに応じて読み込まJobDataMapJobDetailを作成します。
  • このスケジュールされたジョブのTriggerは何度も実行される可能性があり、すべてのジョブの実行でパラメータが変更されずに維持されていることを確認する必要があります。
  • 異なるパラメータで同じタイプのジョブをスケジュールする場合は、新しいJobDetailが作成され、スケジューラに追加されます。
  • このようにして、JobDetailはジョブを実行するために必要なすべての情報(カスタムパラメータ、引数など)を含むメインの「ジョブ定義」とし、実行時間を処理するオブジェクトはTriggerのままにします。

ちょうど私の2セントです。

+0

ありがとうございました。それも私の好みだろう。私は、トリガーにジョブ入力を追加することが好きなケースは何でしょうかと思いました。しかし、これは参考になりました、ありがとう。 – enkay

関連する問題