Java 石英调度器中pauseJob和pauseTrigger之间的区别?
quartz scheduler中的pauseJob()和pauseTrigger()之间有什么区别? 如何从中选择一个供使用?现在我想暂停/中断一项特定的工作我该怎么做 我的调度程序代码如下所示Java 石英调度器中pauseJob和pauseTrigger之间的区别?,java,quartz-scheduler,Java,Quartz Scheduler,quartz scheduler中的pauseJob()和pauseTrigger()之间有什么区别? 如何从中选择一个供使用?现在我想暂停/中断一项特定的工作我该怎么做 我的调度程序代码如下所示 JobDetail job = new JobDetail(); job.setName("pollerjob"+pollerId); job.setJobClass(Pollersheduller.class); job.get
JobDetail job = new JobDetail();
job.setName("pollerjob"+pollerId);
job.setJobClass(Pollersheduller.class);
job.getJobDataMap().put("socialMediaObj", socialMediaObj);
job.getJobDataMap().put("queue", queue);
//configure the scheduler time
SimpleTrigger trigger = new SimpleTrigger();
trigger.setName("pollerSocial"+pollerId);
trigger.setStartTime(new Date(System.currentTimeMillis() + 1000));
trigger.setRepeatCount(SimpleTrigger.REPEAT_INDEFINITELY);
trigger.setRepeatInterval(Long.parseLong(intervel));
//schedule it
Scheduler scheduler = null;
try {
scheduler = new StdSchedulerFactory().getScheduler();
scheduler.start();
scheduler.scheduleJob(job, trigger);
} catch (SchedulerException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
您可能已经注意到,在Quartz中,单个作业可以与多个触发器关联。如果您查看Quartz源,您将看到pauseJob方法只是检索与指定作业关联的所有触发器并暂停它们,而pauseTrigger方法仅暂停特定的触发器。这就是主要的区别 请注意,在Quartz中暂停作业不会暂停当前正在运行的作业,它只会阻止将来运行作业 如果要中断正在运行的作业,则可以使用作业必须实现的接口中定义的interruptJob方法。如果您的作业实现了这个接口,那么完全由您来实现中断逻辑。例如,可以在调用interruptJob方法时设置某种标志,然后需要在作业的execute方法中检查该标志的值