events - CEP 使用 siddhi 没有事件

标签 events wso2 complex-event-processing siddhi

下午好。

我作为一名架构师将 SW Competence Centers 写入公司 Indra (www.indra.com)。

在这个领域通常使用 CEP,开源和商业,在开源领域直到现在我们一直使用 Esper CEP,但我们发现 GPL 存在问题。

在我们对尝试 Siddhi CEP 感到好奇之后,我们开始了一个使用此 CEP 的项目。

问题是我们发现我们无法识别包含所有 CEP 和项目需要的功能:检测事件的缺失。

在 Esper 中,这可以通过如下查询来完成:

     select a.id, count (*) from pattern [
     every a = Status -> (timer: interval (10 sec) and not Status (id = a.id)
     ] Group by id

     http://esper.codehaus.org/tutorials/tutorial/tutorial.html

我们想知道产品路线图是否包含此功能,以及现在是否有解决此问题的方法。

谢谢和问候。

最佳答案

此规则每 10 秒触发一次新事件未到达。 Drools CEP 引擎必须设置为 STREAM 模式

declare EquipmentFact
@role(event)
@timestamp( lastNotifyTs ) 
originalObject : Object    
equipmentInit : String
equipmentNum : String
   lastNotifyTs : java.util.Date   
   eventTs : java.util.Date
   notifyCnt : int
   maxWait : String
end

规则“10秒内未发送设备”

什么时候

$a: EquipmentFact();
not  EquipmentFact(eventTs > $a.eventTs, equipmentInit == $a.equipmentInit, equipmentNum == $a.equipmentNum, this after [1s, 10s] $a)

然后

System.out.println("#######  FIRED  ######### Second EquipmentFact event did not arrive 10s " + $a);
retract($a);
    EquipmentFact retE = new EquipmentFact();
retE.setEquipmentInit($a.getEquipmentInit());
retE.setEquipmentNum($a.getEquipmentNum());
retE.setEventTs($a.getEventTs());
retE.setNotifyCnt($a.getNotifyCnt()+1);
retE.setLastNotifyTs(new Date());
insert(retE);

结束

关于events - CEP 使用 siddhi 没有事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18634985/

相关文章:

javascript - 如何在 d3.js 转换中正确更新输入元素的文本值

wso2 - 集群 WSO2 EI ESB 和 WSO2 EI MB 配置文件,WKA 与多播?我的假设正确吗?

android - 定制wso2 appm和wso2 emm的源码

java - 高效的序列匹配算法

java - 超能力规则语言: fire rule only after condition is fulfilled for a certain time period

java - 口水融合 : measure performance

javascript - onBlur 事件不允许链接点击注册

jquery keyup 忽略不变的字符

c++ - 如何在 C++ 中监听智能卡插入和移除事件?

apache-kafka - 休息 WSO2 卡夫卡