2016-07-29 46 views
0

我想同時只執行5個作業。如果由於缺少空閒線程而導致作業無法啓動,我希望它在空閒線程出現時啓動,並且只有一次。 這是我的代碼:我需要爲ImmediateTrigger設置什麼樣的失火指示?

SchedulerFactory schedFact = new org.quartz.impl.StdSchedulerFactory("quartz.properties"); 
sched = schedFact.getScheduler(); 
sched.start(); 
String jobName = generateJobDetailName(); 
JobDetail jobDetail = new JobDetail(jobName, GRP_Immediate, MyJob.class); 
jobDetail.getJobDataMap().put(MyJob.DATA, data); 
Trigger trigger = TriggerUtils.makeImmediateTrigger(0, 0); 
trigger.setName(jobName + "_Simpletrigger"); 
sched.scheduleJob(jobDetail, trigger); 

這是我quartz.properties文件:

org.quartz.threadPool.class = org.quartz.simpl.SimpleThreadPool 
org.quartz.threadPool.threadCount = 5 
org.quartz.threadPool.threadPriority = 5 

但有件事我不明白。我需要爲需要的行爲設置什麼樣的misfire instruction?既然你應該儘可能早地執行準確的人一個「一次性」觸發

trigger.setMisfireInstruction(SimpleTrigger.MISFIRE_INSTRUCTION_FIRE_NOW); 

回答