我正在尝试编写一个查询,例如“如果你看到值10,并且在接下来的10秒内没有看到值20触发警报”但是无法使语法有效。根据this pull请求,此功能在一年前实施。我对查询的尝试是:
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运行它。我的语法不正确还是我有其他问题?
在缺席模式PR的创建者的tutorial site找到了我的问题的解决方案。问题是我的语法,缺席模式的流不能被命名。所以将查询更改为
define stream inStream(value int);
from every s1=inStream[value == 10]
-> not inStream[value == 20] for 10 sec
select s1.value
insert into outStream
使它完美运作。