我使用以下代码创建多个触发器,然后将所有这些触发器绑定到一个作业。但它失败了
"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();
答案 0 :(得分:3)
从错误中我怀疑sched.scheduleJob(job, trigger);
部分尝试多次安排相同的工作。
尝试在for循环之前添加sched.addJob(job, true);
以仅添加一次('true'用于替换旧作业,如果存在),并在循环内部使用
sched.scheduleJob(trigger);
代替sched.scheduleJob(job, trigger);
sched.scheduleJob(trigger);
能够将触发器添加到作业中,因为您使用.forJob(job)
属性