WSO2 CEP:我们可以在执行计划中使用if-else条件语句吗?

时间:2014-09-25 05:40:17

标签: wso2 wso2cep siddhi

我们可以在wso2 cep执行计划中使用如下的条件语句。

from stream1
select distinct attr1
insert into newStream1;

from stream2
select distinct attr2
insert into newStream2;

if

count(attr1) == count(attr2)

then 

-- do something

else 

-- do something else

用例说明:

我们说我有执行计划,它从3个不同的流中获取数据。 流1提供来自设备1的数据,来自设备2的流2,......等等。

我有一个存储在数据库中的表,它存储了设备总数。在这种情况下,它存储3个设备。

现在在执行计划中,我获得了5分钟窗口的数据。在这5分钟内,只有当我从所有3个流中获取数据时,才会处理数据。否则它不应该。

如果在5分钟内我只从2个流中获取数据,那么执行计划应该丢弃它。

1 个答案:

答案 0 :(得分:0)

您可以使用filters来实现此用例。使用包含' if'的过滤器添加查询。部分,然后是另一个具有' else'过滤条件。您可以使用这些查询的输出分别执行不同类型的处理。您可以在复杂场景中使用查询链。