java无法存储作业,因为已存在具有此标识的作业
我刚接触石英。 我成功地安装并运行了它。 但是,当我第二次运行它时,我出现了一个错误,因为该作业已经存在,并且具有此标识
这是我的代码:
public void scheduleJobs() throws Exception {
try {
int i = 0;
scheduler = new StdSchedulerFactory().getScheduler();
JobKey job1Key = JobKey.jobKey("job"+i, "my-jobs"+i);
JobDetail job1 = JobBuilder
.newJob(SimpleJob.class)
.withIdentity(job1Key)
.build();
TriggerKey tk1 = TriggerKey.triggerKey("trigger"+i, "my-jobs"+i);
Trigger trigger1 = TriggerBuilder
.newTrigger()
.withIdentity(tk1)
.withSchedule(CronScheduleBuilder.dailyAtHourAndMinute(11, 25))
.build();
scheduler.start(); // start before scheduling jobs
scheduler.scheduleJob(job1, trigger1);
i++;
printJobsAndTriggers(scheduler);
} catch (SchedulerException e) {
LOG.error("Error while creating scheduler", e);
}
}
我试图用一个整数I来更改名称,但它不起作用。 你知道我该怎么修吗? 非常感谢
# 1 楼答案
计划前检查现有作业:
# 2 楼答案
如果你们中有人面临同样的问题,而你的解决方案是C#。这就是修复此错误的方法
这是我们配置调度器的地方
这是我们可以配置作业的方式,请注意,我们正在检查作业是否已经存在,如果
await scheduler.CheckExists(dailyJob.Key)
返回true,我们将删除该作业信息,并使用相同的密钥创建一个新的作业还有一些配套的私人功能
您可以从this GitHub repository获得完整的源代码