【发布时间】:2019-04-09 06:14:45
【问题描述】:
我正在使用石英框架来添加和安排作业和触发器。要求是为数据库中已经存在的作业动态添加触发器。当我试图用下面的代码实现这一点时,我得到了 org.quartz.ObjectAlreadyExistsException: Unable to store Job : 'EBP1.AAA',因为这个标识已经存在。具有 JobGroup EBP1 的作业 AAA 已进入数据库。我只想为同一个工作添加新的触发器。请帮助如何实现这一目标。
String jobName = "AAA";
jobTrigger = jobName + "Trigger"+ (int )(Math.random() * 50 + 1);
String jobGroup = "EBP1";
JobDetail jobDetail = JobBuilder.newJob(ScheduleJob.class).withIdentity(jobTrigger, jobGroup).storeDurably()
.build();
if (scheduler.checkExists(JobKey.jobKey(jobName, jobGroup))) {
System.out.println("Job exist");
} else {
System.out.println("New job");
scheduler.addJob(jobDetail, true);
}
CronTrigger trigger1 = (CronTrigger)(newTrigger().withIdentity(jobTrigger, jobGroup).withDescription("default description").forJob(jobDetail)
.withSchedule(CronScheduleBuilder.cronSchedule(cronExpression)).startAt(futureDate(500, IntervalUnit.MILLISECOND)).build());
scheduler.scheduleJob(jobDetail, trigger1);
【问题讨论】:
标签: java quartz-scheduler job-scheduling quartz crontrigger