5

Quartz-Scheduler で job に関する実行制約を定義することは可能ですか?

確かに、インターフェイス Job を実装する 2 つのクラス、JobA と JobB があります。

JobA は毎分スケジュールされます。JobB は 1 時間ごとにスケジュールされます。

JobA と JobB を同時に実行したくありません。

注 : JobA と JobB は同じことを行いません。

回答ありがとうございます。

4

1 に答える 1

4

それに対する直接的なサポートはありません。同じジョブの場合は、ステートフルとして定義できます。そのようなジョブは同時に実行できません。

それ以外の場合は、Quartz ワーカー スレッドの数を 1 に制限できます。さらに、スレッドの優先順位を定義して、最初に実行するジョブを選択できます。残念ながら、このソリューションは、より多くのジョブが関与する場合には拡張できません。

最後に、Quartz を使用せずにこれを手動で実装できます。いくつかの操作やリソースに同時にアクセスしたくないと思います。そのメソッド/リソースをロックして、両方のジョブが同時に実行されるようにすることを検討してください。ただし、一方がブロックされ、他方が完了するのを待ちます。

于 2012-05-19T16:07:58.253 に答える