#java #bpmn #business-process-management #camunda-modeler
#java #bpmn #управление бизнес-процессами #camunda-моделист
Вопрос:
У меня есть задача, в которой вам нужно отправить уведомление, если крайний срок планирования приближается и осталось 30 дней, а также отправить уведомление за 5 дней до истечения оставшегося срока. Я много искал сейчас, и теперь я не могу найти ответ на какой элемент и как это сделать. Я думал использовать событие таймера, но если я делаю это с помощью cron, то как понять, что нужно оставить задачу и не запускать схему снова каждый раз, если отправка уведомления не актуальна
Ответ №1:
Timer
класс, как правило, устарел из-за службы запланированного исполнителя, предоставляемой платформой исполнителей.
Запланируйте задачу, которая время от времени выполняется, чтобы увидеть, приближаются ли этапы крайнего срока.
if( thirtyDayNoticeNotYetSent ) {
LocalDate then = … retrieve date due … ;
LocalDate today = LocalDate.now( ZoneId.of( "America/Edmonton" ) ) ;
long daysUntil = ChronoUnit.DAYS.between( today , then ) ;
if( daysUntil < 30 ) { send notification … }
}
Аналогичным образом выполните поиск заданий, которые еще не получили уведомления за 5 дней, и рассчитайте прошедшие дни. Если меньше пяти, отправьте уведомление и запишите этот факт.
Служба запланированного исполнителя была рассмотрена много раз при переполнении стека. Итак, ищите, чтобы узнать больше.