У нас есть куча кварцевых заданий, настроенных для работы в кластерной среде, и, похоже, все отлично работает на реальном кластере (две машины WAS).
В среде DEV мы все еще использовали
org.quartz.jobStore.isClustered = true
хотя мы используем только одну машину. Но мы часто, но не всегда, получаем следующее исключение:
org.quartz.JobPersistenceException:
Couldn't store trigger 'DEFAULT.MT_6uclr3emepk6p' for '<group>.<name>'
job:The job (<group>.<name>) referenced by the trigger does not exist.
Мы изменили настройку для среды DEV на
org.quartz.jobStore.isClustered = false
Похоже, это решило проблему.
Итак, вопросы:
- Является ли проблемой установка
org.quartz.jobStore.isClustered = true
, когда вы фактически не используете кластер
- если так, почему?
- если нет, в чем может быть причина первоначальной проблемы?
ОБНОВЛЕНИЕ: Уточнение при возникновении ошибки:
Это фрагмент, который устанавливает работу.
JobKey JOBKEY = new JobKey("Name", "group");
newTrigger().withIdentity("TriggerName", "group").forJob(
JOBKEY).build();
JobDetail job = newJob(NameJob.class).withIdentity(
JOBKEY)
.storeDurably().build();
scheduler.addJob(job, false);
Этот фрагмент должен вызывать выполнение задания
scheduler.triggerJob(JOBKEY);