Java 石英调度器中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

quartz scheduler中的pauseJob()和pauseTrigger()之间有什么区别? 如何从中选择一个供使用?现在我想暂停/中断一项特定的工作我该怎么做

我的调度程序代码如下所示

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方法中检查该标志的值