2016-07-29 88 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); 

回答

相关问题