Я пытаюсь написать правило, которое откладывает запуск до тех пор, пока не пройдет как минимум 15 минут с момента последнего запуска. Однако временные операторы в Drools Fusion позволяют рассуждать только о двух событиях относительно друг друга, а не об одном событии относительно текущего времени.
Я бы хотел что-то вроде этого:
rule "some rule"
when
not LastFiredEvent(this before[0m, 15m] NOW)
…
Я прибег к написанию правила который запускается каждую секунду и вставляет событие сердцебиения (также удаляет предыдущее сердцебиение), которое я могу использовать в других правилах, чтобы служить текущим временем.
Я считаю это довольно неэлегантным; Я что-то упускаю или в Drools Fusion действительно чего-то нет?
NB. Я не ищу отложенное срабатывание правил или правил, которые могут срабатывать только на кратных 15 минутах; если за последние 17 минут ничего не произошло, правило должно срабатывать немедленно в ответ на новое событие.