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