Sto provando a scrivere una regola che ritarda il licenziamento fino a quando sono trascorsi almeno 15 minuti dall'ultimo sparo. Tuttavia, gli operatori temporali in Drools Fusion consentono solo il ragionamento su due eventi in relazione tra loro e non su un evento in relazione al tempo corrente.Drools Fusion ha un concetto di "adesso"?
Vorrei qualcosa di simile:
rule "some rule"
when
not LastFiredEvent(this before[0m, 15m] NOW)
…
Mi hanno fatto ricorso a scrivere una regola che spara ogni secondo e inserisce un evento heartbeat (ritraendo anche il battito cardiaco precedente), che posso utilizzare in altre regole per servire come l'ora corrente.
Trovo che questo sia poco elegante; mi manca qualcosa o Drools Fusion non ha davvero qualcosa per questo?
NB. Sono non alla ricerca di spari ritardati di regole o regole che possono sparare solo su multipli di 15 minuti; se non è successo nulla negli ultimi 17 minuti, la regola deve corrispondere a immediatamente in risposta a un nuovo evento.
Il tuo commento che 'la società' è un concetto problematico è intrigante. Puoi elaborare? –