WSO2 CEP: можем ли мы использовать условные операторы if-else в планах выполнения?

Можем ли мы иметь условные операторы, как показано ниже, в плане выполнения 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 потоков, то план выполнения должен их отбросить.


person Anshul Gupta    schedule 25.09.2014    source источник
comment
Добро пожаловать в СО. Возможно, вы захотите привести более конкретный пример в своем вопросе. Если вы уже пытались написать что-то, что вы хотите, не могли бы вы поделиться этим? Тогда люди смогут вам помочь.   -  person jazzurro    schedule 25.09.2014
comment
Привет джазурро. Я попытался объяснить свой вариант использования выше. Дайте мне знать, если этой информации недостаточно или требуется дополнительная ясность.   -  person Anshul Gupta    schedule 01.10.2014


Ответы (1)


Вы можете использовать фильтры для реализации этого варианта использования. Добавьте запрос с фильтром, который имеет часть «если», а затем другой запрос с условием «иначе» в фильтре. Вы можете использовать выходные данные этих запросов для выполнения различных типов обработки по отдельности. Вы можете использовать цепочки запросов для сложных сценариев.

person Rajeev Sampath    schedule 06.10.2014