Wso2 匹配没有事件的情况
我有一个简单的对象状态流:Wso2 匹配没有事件的情况,wso2,wso2cep,siddhi,Wso2,Wso2cep,Siddhi,我有一个简单的对象状态流: define stream statusStream (id string, success bool); 我想查询自5分钟以来“失败”(success=false)的所有对象:statusStream(,false)的所有事件,其中5分钟内没有事件(相同id,true) 对于这种工作,最简单的siddhi查询是什么 目前我有: define stream statusStream (id string, success bool); from statusStr
define stream statusStream (id string, success bool);
我想查询自5分钟以来“失败”(success=false)的所有对象:statusStream(,false)的所有事件,其中5分钟内没有事件(相同id,true)
对于这种工作,最简单的siddhi查询是什么
目前我有:
define stream statusStream (id string, success bool);
from statusStream[ success == false ]#window.time(5 minutes)
insert expired events into expiredStatusStream;
from every status = statusStream[ success == false ]
-> ackStatus = statusStream[ success == true and id == status.id]
or expiredStatus = expiredStatusStream[ id == status.id ]
select status.id, ackStatus.id as ackId
into filteredStatusStream;
from filteredStatusStream[ ackStatus.id is null ]
insert into failedStatusStream;
如果您收到“success==false”消息表示失败,请尝试以下执行计划:
@Import('statusStream:1.0.0')
define stream statusStream (id string, success bool);
@Export('alertStream:1.0.0')
define stream alertStream (alert string);
from statusStream
select id, success, time:timestampInMilliseconds() as ts
insert into statusStreamWithTS;
from every e1=statusStreamWithTS[success==false], statusStreamWithTS[success==false]*, e2=statusStreamWithTS[success==false AND (e2.ts - e1.ts) >= 500000]
select 'some message' as alert
insert into alertStream;
在这里,如果我们在5分钟内继续收到“success==false”消息,将生成一个警报