我使用以下代码创建多个触发器,然后将所有这些触发器绑定到一个作业。但它失败了
"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)
属性指定了触发器