2016-06-23 6 views
0

別のジョブが開始されたときに既存のジョブを削除するメカニズムがQuartzにありますか?私が他のジョブを一時停止する必要がある理由は、新しいジョブでは、他のジョブが実行されていない場合にのみ有効なすべてのリソースが使用可能であるためです。ここでQuartz:別のジョブが開始されたときに一連のジョブを削除するには?

は例です:

は、私が2つのジョブズ持っている:ジョブAとジョブBを

ジョブAは、一日を通して実行されます。 ジョブBは24時間に1回実行されます。

ジョブBの実行中にジョブAを削除または一時停止する方法はありますか?

答えて

1

ジョブでInterruptableJobが実装されている場合は、ジョブBからQuartzスケジューラでinterrupt(jobKey)を呼び出してジョブAを中断できます。

のJavadoc:

http://www.quartz-scheduler.org/api/2.2.1/index.html

http://www.quartz-scheduler.org/api/2.2.1/org/quartz/Scheduler.html#interrupt(org.quartz.JobKey)

例:

https://github.com/elventear/quartz-scheduler/blob/master/distribution/examples/src/main/java/org/quartz/examples/example7/InterruptExample.java

+0

はどのように仕事をBとはいえ、ジョブAのJobKeyを認識するのでしょうか?ジョブBが実行されているとき、ジョブAのスコープはありません。スケジューラはジョブAのスコープを持ちますが、ジョブBの実行機能内にはジョブAの認識がありません。 –

関連する問題