Как сделать потоковый запрос с чем-то вроде таймера? - PullRequest
0 голосов
/ 24 января 2019

Я делаю приложение для сиддхи. Мне нужен запрос для получения события из потока, если в определенное время не поступит событие с таким же идентификатором.

Это для SiddhiApp с потоковым процессором WSO2.

Допустим, JSON прибывает в 0s

{ "id": "1566", «Состояние»: «Кочабамба» }

затем еще раз в 1с с другим идентификатором

{ "id": "1575", "Departamento": "Ла Пас" }

и еще раз в 4с

{ "id": "1575", "Departamento": "Ла Пас" }

То, что должен сделать запрос, это выдать только первый 1

{ "id": "1566", «Состояние»: «Кочабамба» }

Потому что это соответствует условию. Всего одно событие за 5 секунд. Другой 1575 имеет два события в то время.

1 Ответ

0 голосов
/ 25 января 2019

Я нашел способ обнаружения не происходящих событий

https://wso2.github.io/siddhi/documentation/siddhi-4.0/#detecting-non-occurring-events

from every( s1 = SweetProductionStream) -> not SweetProductionStream[s1.id == id ] for 8 seconds
select s1.resource1 as resource
insert  into resource1;

этот код говорит, что при достижении события он будет ожидать, если событие с тем же идентификатором не достигнет потока в течение 8 секунд, а затем будет вставлен в поток resource1

...