0
我的目標是創建一個隊列系統,我可以爲每個組指定最大併發作業數量,即對於組A,最多3個作業應該同時運行,對於組B max Y工作等等。作業可以在cron時間表上執行,並且只能用SimpleTrigger執行一次,因此在安排作業時我不能檢查隊列,我必須在執行前或執行期間檢查它。我正在實現一個joblistener,我試圖阻止jobToBeExecuted()方法中的執行。我試過了scheduler.interrupt(),但是當作業尚未開始時它就不起作用。 scheduler.deletejob()和scheduler.unschedule()並沒有阻止它執行。石英防止作業執行jobToBeExecuted
任何想法?
public class JobQueueListener implements JobListener {
@Override
public void jobToBeExecuted(JobExecutionContext context) {
JobKey currentJobKey = context.getJobDetail().getKey();
JobDetail jobDetail = context.getJobDetail();
Scheduler scheduler = context.getScheduler();
if (shouldBePutInQueue(currentJobKey)) {
/// Prevent execution and put in queue here, but how?
}
}
@Override
public void jobWasExecuted(JobExecutionContext context, JobExecutionException jobException) {
//Check queue and execute next in queue
}
}
謝謝,正是我想要的! – Johan