看来,Drools在这里非常突出,所以我想我会问:
可以将Drools规则用于事件模式检测吗?
模式来自:"Event_x" SEQ/AND/OR "Event_z"
。以下示例表示所需的用法。事件使用以前已知的ID进行识别。
rule "Rule x"
when
Event1 SEQ/AND/OR Event2
then
System.out.println("Event1 SEQ/AND/OR Event2");
答案 0 :(得分:1)
是。 “和”和“或”直接用作条件元素:
rule X when
Event1() and Event2()
...
rule Y when
Event3() or Event4()
它们显然可以组合,嵌套等...查看Drools文档以获取详细信息。
直到Drools 5.4,使用像“之前”,“之后”之类的时间运算符来定义顺序。例如:
rule Z when
$e1 : Event1() and $e2 : Event2( this after $e1 )
...
对于Drools 5.5,计划了几种序列条件元素:
rule W when
Event1() -> Event2()
...
其中 - >接下来是运营商,=>严格遵守等等。
详细说明:
https://community.jboss.org/wiki/EventSequencing#4_Definition_Sequence_Conditional_Elements