Ich versuche eine Regel zu schreiben, die das Schießen verzögert, bis mindestens 15 Minuten seit dem letzten Schießen verstrichen sind. Die temporalen Operatoren in Drools Fusion erlauben jedoch nur das Schließen zweier Ereignisse in Bezug aufeinander und nicht eines Ereignisses in Bezug auf die aktuelle Zeit.Hat Drools Fusion ein Konzept von "jetzt"?
Ich würde so etwas wie dies mag:
rule "some rule"
when
not LastFiredEvent(this before[0m, 15m] NOW)
…
Ich habe Zuflucht, eine Regel zu schreiben, die jede Sekunde und fügt ein Herzschlag-Ereignis ausgelöst (auch die vorherigen Herzschlag Einfahren), die ich in anderen Regeln verwenden dienen als die aktuelle Zeit.
Ich finde das ziemlich unelegant; Fehle ich etwas oder hat Drools Fusion wirklich nichts dafür?
NB. Ich bin nicht auf der Suche nach verzögerten Feuern von Regeln oder Regeln, die nur auf ein Vielfaches von 15 Minuten feuern kann; Wenn in den letzten 17 Minuten nichts passiert ist, muss die Regel sofort als Reaktion auf ein neues Ereignis ausgelöst werden ().
Ihr Kommentar, dass 'jetzt' ein problematischer Begriff faszinierend ist. Kannst du es ausarbeiten? –