WSO2 cep:如何处理多个连接?

时间:2014-10-09 06:38:55

标签: wso2 wso2cep

我试着解决简单的任务: 1.我希望关联3个事件 A,B,C 的出现,以防它们在最后10秒内发生。

因此Siddhi只支持2次加入查询,我认为我无法解决它。在文档中,建议使用多个查询并将它们连接在一起,如此

from A#window.time(10 sec) as a
join B#window.time(10 sec) as b on a.id == b.id
select a.id
insert into tempA

from tempA#window.time(10 sec) as a
join C#window.time(10 sec) as c on c.id == a.id
select *
insert into finalResult

但是这会产生错误的结果,因为流tempA中的数据可以存活更长时间,时间窗口不对齐。

也许我失踪了。有什么建议? 感谢

1 个答案:

答案 0 :(得分:0)

要解决此问题,您可以尝试以下方法:

  1. 对于每个传入的事件,添加时间戳。 (您也可以在客户端本身执行此操作,而不是在cep中执行此操作。)
  2. external time windows
  3. 替换时间窗口
  4. 使用以前添加的时间戳字段作为外部时间窗口的时间参考
  5. 由于在这种情况下时间戳将是全局的,并且所有外部时间窗口都将根据它们运行,因此这应该可以正常工作。