可以在石英中使用不同的触发器运行相同的作业



我使用以下代码创建多个触发器,然后将所有这些触发器绑定到一个作业。但它失败了

 "org.quartz.ObjectAlreadyExistsException: Unable to store Job : 'Group.Job', because one already exists with this identification.
"

 for (SchedulerBean schedulerBean : schedulerList) {
            Trigger trigger = newTrigger()
                    .withIdentity("trigger_" + schedulerBean.getConnectorID())
                    .usingJobData("ID", schedulerBean.getConnectorID())
                    .withSchedule(cronSchedule(schedulerBean.crontab))
                    .forJob(job)
                    .build();
            sched.scheduleJob(job, trigger);
        }
  sched.start();

从错误中,我怀疑sched.scheduleJob(job, trigger);部分尝试多次安排相同的作业。

尝试在 for 循环之前添加 sched.addJob(job, true); 以仅添加一次("true"用于替换旧作业,如果存在),并在循环中使用 sched.scheduleJob(trigger);而不是sched.scheduleJob(job, trigger);

sched.scheduleJob(trigger);能够将触发器添加到作业,因为您使用 .forJob(job) 属性指定了触发器

最新更新