如何使用计时器等进行流查询?

时间:2019-01-24 19:53:44

标签: wso2 complex-event-processing siddhi

我正在制作siddhi应用。我需要的是一个查询,以在特定时间内没有到达具有相同ID的事件时从流中获取事件。

这是针对具有WSO2流处理器的SiddhiApp。

让我们说一个json到达时间0s

{   “ id”:“ 1566”,   “ state”:“ Cochabamba” }

然后在其他时间1s用另一个ID

{   “ id”:“ 1575”,   “部门”:“拉巴斯” }

另一个在时间4s

{   “ id”:“ 1575”,   “部门”:“拉巴斯” }

查询应该做的只是删除第一个

{   “ id”:“ 1566”,   “ state”:“ Cochabamba” }

因为它符合条件。 5秒内只有一个事件。 其他1575年有两次事件。

1 个答案:

答案 0 :(得分:2)

我找到了一种检测未发生事件的方法

https://wso2.github.io/siddhi/documentation/siddhi-4.0/#detecting-non-occurring-events

from every( s1 = SweetProductionStream) -> not SweetProductionStream[s1.id == id ] for 8 seconds
select s1.resource1 as resource
insert  into resource1;

这段代码说,在到达事件中,如果具有相同ID的事件在8秒内没有到达流,它将等待,然后它将插入resource1流中