简单的事件序列

时间:2016-08-02 10:29:28

标签: complex-event-processing esper epl

假设正在发出A,B,C或D类型的事件。我想检测类型A的事件后面跟着类型B的事件。换句话说,我想检测一个序列,Esper的EPL为其提供->运算符。

然而,我上面描述的是模棱两可的,我想要的是以下内容:每当检测到B时,我希望它与最近的A匹配。

我一直在玩EPL的语法,但我能想到的最好的是:

select * from pattern [(every a=A) -> b=B]

但是,这会将每个B与最后一次匹配后出现的最旧A匹配。奇怪的...

非常感谢帮助! :P

1 个答案:

答案 0 :(得分:1)

我使用连接进行简单匹配。另一个选项是匹配识别。像这样的连接。

select * from B unidirectional, A.std:lastevent()