首页 > 解决方案 > Siddhi 缺席事件

问题描述

我正在尝试针对“如果您看到值 10 并且在接下来的 10 秒内没有看到值 20 触发警报”这样的情况编写查询,但无法使语法正常工作。根据这个拉取请求,这个功能是在一年前实现的。我对查询的尝试是:

define stream inStream(value int); 
            from every s1=inStream[value == 10]  
            -> not s2=inStream[value == 20] for 10 sec  
            select s2.value  
            insert into outStream

查看 Siddhi 项目中的语法文件,这看起来应该是一个有效的查询,但是当我尝试运行它时,我得到“SiddhiQL 中的语法错误,输入时没有可行的替代方案”。我正在使用 siddhi-core 4.2.18 运行它。我的语法不正确还是有其他问题?

标签: complex-event-processingsiddhi

解决方案


在缺席模式 PR 的创建者的教程站点上找到了我的问题的解决方案。问题是我的语法,无法命名缺席模式的流。所以将查询更改为

define stream inStream(value int); 
        from every s1=inStream[value == 10]  
        -> not inStream[value == 20] for 10 sec  
        select s1.value  
        insert into outStream

使它完美地工作。


推荐阅读