Хотя концепция «СЕЙЧАС» может показаться простой на первый взгляд, это не так, поскольку она неоднозначна и зависит от различной семантики, которую она может использовать в зависимости от рабочей среды.Drools Fusion имеет понятие «СЕЙЧАС» , когда вы запускаете его в режиме STREAM , но оно отличается от того, что вы спрашивали выше.Объяснение здесь немного длинное, поэтому давайте сосредоточимся на вашей проблеме.
Сначала вы говорите: «Я пытаюсь написать правило, которое задерживает увольнение ...», а затем вы говорите: «Я не ищу отложенного запуска правил ...», поэтому язапутался в том, что вам нужно.
Если вы хотите отложить правило, вы можете использовать атрибут таймера:
rule X
timer( int: 15m )
...
Если вы хотите запустить правило в случае, если событие произошло или нетпроизойти в течение интервала, вы можете использовать раздвижные окна.Например:
rule "Event did not happen in the last 15m"
when
not( SomeEvent() over time:window(15m) )
...
Надеюсь, это поможет.И кстати, попробуйте опубликовать свои вопросы в списке рассылки Drools, так как вам будет легче получить ответ.Я видел твой пост только потому, что друг мне об этом сказал.
Приветствия, Эдсон