Ответ 1
Нашел ответ здесь
Игнорирование repeatInterval
и настройка repeatCount = 0
делает то, что я хотел.
Я пытаюсь интегрировать задание Quartz в мое приложение spring. Я получил этот пример от здесь. В этом примере показаны задания, выполняемые с повторяющимися интервалами с помощью simpletrigger
и в определенное время с помощью crontrigger
.
Мое требование - запускать задание только один раз при запуске приложения. Я удалил свойство repeatInterval
, но приложение выдает исключение:
org.quartz.SchedulerException: Repeat Interval cannot be zero
Есть ли способ запланировать задание только один раз?
Спасибо..
Нашел ответ здесь
Игнорирование repeatInterval
и настройка repeatCount = 0
делает то, что я хотел.
Spring SimpleTriggerFactoryBean выполняет задание: если вы не укажете время начала, оно установит его в 'now'.
Тем не менее, я думаю, что долгосрочное одноразовое задание должно рассматриваться как анти-шаблон, поскольку он не будет работать даже в кластере 2- node: если node, который запускает задание, опускается, будет никого, кто бы перезапустил работу.
Я предпочитаю выполнять задание, которое повторяется, например. каждый час, но аннотируется с помощью @DisallowConcurrentExecution. Таким образом, вы гарантируете, что точно одно задание будет запущено, как при node, который первоначально размещал задание, так и после того, как он опустился.