Запланируйте пакетное задание Java с интервалом с последней даты окончания
Я написал свою работу с помощью jsr-352 и развернул ее на wildfly. Как я могу запланировать одну работу с некоторой задержкой после последнего времени окончания, как показано ниже, где =
время выполнения и -
время задержки:
===============--=====--========--
Примечание: максимальное количество выполненных работ - один
1 ответ
JBeret ejb scheduler поддерживает повторяющиеся интервальные выполнения задания с фиксированной длительностью или определенной продолжительностью задержки после начала выполнения задания. Задержка после завершения выполнения задания в настоящее время не поддерживается. Если продолжительность выполнения вашей работы относительно предсказуема, вы можете приблизить ее с интервалом или задержкой после начала выполнения задания.
Чтобы добиться такого рода планирования работы с более точным контролем, вы можете попробовать следующее:
- планировать график работы с одним действием
- настройте прослушиватель задания в job.xml, чтобы следить за окончанием выполнения вышеуказанного задания, и планируйте выполнение следующего задания с одним действием с небольшой начальной задержкой
- в частности, работа слушателя
afterJob()
метод должен иметь возможность искать или вводитьTimerSchedulerBean
, который является локальным одноэлементным EJB, и вызывает егоorg.jberet.schedule.TimerSchedulerBean#schedule
метод. Слушатель задания отвечает за создание экземпляраorg.jberet.schedule.JobScheduleConfig
, передавая его при вызове бизнес-метода ejb. Слушатель работы должен уже иметь всю информацию для созданияJobScheduleConfig
,