我正在制作siddhi应用。我需要的是一个查询,以在特定时间内没有到达具有相同ID的事件时从流中获取事件。
这是针对具有WSO2流处理器的SiddhiApp。
让我们说一个json到达时间0s
{ “ id”:“ 1566”, “ state”:“ Cochabamba” }
然后在其他时间1s用另一个ID
{ “ id”:“ 1575”, “部门”:“拉巴斯” }
另一个在时间4s
{ “ id”:“ 1575”, “部门”:“拉巴斯” }
查询应该做的只是删除第一个
{ “ id”:“ 1566”, “ state”:“ Cochabamba” }
因为它符合条件。 5秒内只有一个事件。 其他1575年有两次事件。
答案 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流中