Я узнал, что можно определить отсутствие события, например: выбрать * из шаблона [каждый EventX -> (таймер: интервал (10 секунд), а не EventX)], но также возможно ли обнаружить наличие события после его отсутствия? Возможно, используя априор? И можно ли использовать одно выражение для обнаружения как отсутствия, так и присутствия? Заранее спасибо!
Эспер - обнаружить событие после отсутствия
Ответы (1)
Похоже, вы ищете это
every EventX -> (timer:interval(10 sec) and not EventX) -> Event X
...добавляя временной интервал, через который должно прийти событие...
every EventX -> (timer:interval(10 sec) and not EventX) -> Event X where timer:within(10)
Попробуйте внешнее соединение для обнаружения нескольких шаблонов:
select * from pattern[...].win:length_batch(1) as pattern1 full outer join pattern[...].win:length_batch(1) as pattern2
person
goodie
schedule
18.07.2016
Спасибо за предложение, я попробую это. Идея состоит в том, что датчик отправляет событие каждые 10 секунд, и я хочу запустить уведомление о том, что датчик находится в автономном режиме, когда от этого датчика не обнаружено никаких событий через 10 секунд. Но когда датчик снова начинает отправлять события через регулярные промежутки времени, я хочу отправить онлайн-уведомление.
- person user5526698; 18.07.2016
Вроде работает, но за 10 сек. например, если для повторного поступления событий требуется более 20 секунд (после отсутствия), он перестает работать. Мне как-то нужно определить, когда датчик снова в сети после более длительного (неизвестного) периода времени. Это возможно?
- person user5526698; 18.07.2016
Я бы попробовал вставить в именованное окно при обнаружении отсутствия. Когда приходит событие и в именованном окне есть строка, выберите и удалите строку, и это индикатор онлайн.
- person goodie; 19.07.2016