使用Siddhi模式检测未发生的事件

时间:2015-02-26 22:35:46

标签: wso2 pattern-matching wso2cep siddhi

在CEP引擎中,我试图做一个类似

的模式
from s1 = SensorStream[level == 'A'] **NOT** -> s2 = SensorStream[level == 'B'] within 10 sec  
select s1.id as id1, s2.id as id2 insert into AlertStream 

我找到了link,但我所拥有的不是范围...

有什么想法吗?

谢谢!

2 个答案:

答案 0 :(得分:0)

玛塔,

你不能使用以下方法。那是你想要实现的目标吗?

来自s1 = SensorStream [level!=' A'] - > s2 = SensorStream [level ==' B']在10秒内 选择s1.id作为id1,s2.id作为id2插入AlertStream

答案 1 :(得分:0)

此功能已添加到Siddhi 4.0(目前正在开发中)PR#483。根据此实现,您可以使用以下查询来实现您的要求:

from s1 = SensorStream[level == 'A'] -> not SensorStream[level == 'B'] for 10 sec  
select s1.id as id
insert into AlertStream;

请注意,not pattern不能包含流引用s2,因为您无法选择未到达的事件的ID。

如果您想尝试早期访问Siddhi,请按照本教程中的说明进行操作:Siddhi 4.0.0 Early Access

如需更多样本,请查看test cases