2012-05-18 9 views
5

Quartz-Schedulerではジョブに関する実行制約を定義できますか?Quartz-Schedulerで2つのジョブが同時に実行されないようにする

実際、Job:JobAとJobBという2つのインターフェイスを実装しています。

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

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

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

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

答えて

4

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

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

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

+0

OK。ご回答有難うございます – Sly33

関連する問題