0
我是Quartz 2.1的新手,對此有疑問。我有一個工作如下石英防止作業重疊
@PersistJobDataAfterExecution
@DisallowConcurrentExecution
public class HelloJob implements Job {
public void execute(JobExecutionContext arg0) throws JobExecutionException {
和我創造就業崗位2如下
JobDetail jobDetail = JobBuilder.newJob(HelloJob.class).withIdentity("Job1").build();
JobDetail jobDetail2 = JobBuilder.newJob(HelloJob.class).withIdentity("Job2").storeDurably().build();
Trigger trigger = TriggerBuilder.newTrigger().forJob(jobDetail).withSchedule(
SimpleScheduleBuilder.simpleSchedule()
.withIntervalInSeconds(5).repeatForever()).build();
Trigger trigger2 = TriggerBuilder.newTrigger().forJob(jobDetail2).withSchedule(
SimpleScheduleBuilder.simpleSchedule()
.withIntervalInSeconds(10).repeatForever()).build();
SchedulerFactory factory = new StdSchedulerFactory("quartz.properties");
Scheduler scheduler = factory.getScheduler();
scheduler.start();
scheduler.scheduleJob(jobDetail, trigger);
scheduler.scheduleJob(jobDetail2, trigger2);
正如你看到的,JOB1執行每5秒,作業2執行每10秒。我想要的是,如果job1完成超過10秒鐘,job2將執行直到job1完成。但實際上,job2仍然在job1未完成時執行。你可以幫我嗎?
P/s: this is the quartz.properties:
org.quartz.threadPool.class = org.quartz.simpl.SimpleThreadPool
org.quartz.threadPool.threadCount = 2
org.quartz.threadPool.threadsInheritContextClassLoaderOfInitializingThread = true