Планировщик Quartz — обработка измененных заданий при развертывании НОВОЙ базы кода в режиме реального времени.JAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Планировщик Quartz — обработка измененных заданий при развертывании НОВОЙ базы кода в режиме реального времени.

Сообщение Anonymous »

Когда мы развертываем новый кластер, на котором работает кварц, старый кластер все еще работает, пока все не будет проверено.
Запуск двух баз кода сталкивается с несколькими возможными проблемами, если существует задания изменены или задание создано (новый класс) в Quartz. Это мое лучшее предположение о том, что делать, на основе чтения документации, написания нескольких примеров и изучения stackoverflow. Будем признательны за любые советы.
  • Для управления версией существующего задания необходимо вставить «minVersion» в JobData и повторно запустить задание. старого кластера достаточно?
// New codebase increments version
JobDetail versionedJob = JobBuilder.newJob(ExistingJob.class)
.withIdentity("existingJob", "defaultGroup")
.usingJobData("minVersion", 2) // Changed job to 2
.build();

// All "versioned" jobs have this logic
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;
}
...
}
}
  • Для совершенно нового задания (класса) в новой базе кода добавлена ​​обработка пропусков зажигания в достаточно хороший триггер, чтобы позволить новому кластеру в конечном итоге его подхватить?
Trigger trigger = TriggerBuilder.newTrigger()
.withIdentity("newJobTrigger", "defaultGroup")
.startNow()
.withSchedule(SimpleScheduleBuilder.simpleSchedule()
.withIntervalInSeconds(15)
.repeatForever()
.withMisfireHandlingInstructionNextWithExistingCount())
.build();


Подробнее здесь: https://stackoverflow.com/questions/790 ... loyed-live
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»