Это приводит к нескольким возможным проблемам с Quartz, и я был бы признателен за совет. .
- Для управления версиями существующего задания достаточно ли хорошо использовать JobData и повторно запускать задание из старого кластера?
.withIdentity("existingJob", "defaultGroup")
.usingJobData("minVersion", 2) // Existing job requires version 2 or higher
.build();
public class ExistingJob implements Job {
@Override
public void execute(JobExecutionContext context) throws JobExecutionException {
JobDataMap jobDataMap = context.getJobDetail().getJobDataMap();
int minVersion = jobDataMap.getInt("minVersion");
if (currentVersion < minVersion ) {
JobExecutionException e = new JobExecutionException("Job execution stopped (incorrect version)");
e.setRefireImmediately(true);
throw e;
}
...
}
}
- Для совершенно нового задания (класса) к триггеру добавляется обработка пропусков зажигания, достаточно хорошая, чтобы позволить новый кластер, чтобы в конечном итоге его подхватить?
.withIdentity("newJobTrigger", "defaultGroup")
.startNow()
.withSchedule(SimpleScheduleBuilder.simpleSchedule()
.withIntervalInSeconds(15)
.repeatForever()
.withMisfireHandlingInstructionNextWithExistingCount())
.build();
Подробнее здесь: https://stackoverflow.com/questions/790 ... loyed-live