Есть ли в Drools Fusion понятие «сейчас»?

Я пытаюсь написать правило, которое откладывает запуск до тех пор, пока не пройдет как минимум 15 минут с момента последнего запуска. Однако временные операторы в Drools Fusion позволяют рассуждать только о двух событиях относительно друг друга, а не об одном событии относительно текущего времени.

Я бы хотел что-то вроде этого:

rule "some rule"
when
    not LastFiredEvent(this before[0m, 15m] NOW)
    …

Я прибег к написанию правила который запускается каждую секунду и вставляет событие сердцебиения (также удаляет предыдущее сердцебиение), которое я могу использовать в других правилах, чтобы служить текущим временем.

Я считаю это довольно неэлегантным; Я что-то упускаю или в Drools Fusion действительно чего-то нет?

NB. Я не ищу отложенное срабатывание правил или правил, которые могут срабатывать только на кратных 15 минутах; если за последние 17 минут ничего не произошло, правило должно срабатывать немедленно в ответ на новое событие.

6
задан Mat 20 July 2012 в 05:18
поделиться