как вызвать эспер, если нет входящих событий за заданный период времени

У меня есть процессор esper, настроенный на прослушивание сообщений в kafka.

обычно select * from events.win:time(2 min) запускает все события за последние 2 минуты. Теперь я хочу вызвать уведомление, если в kafka нет сообщений за последние 2 минуты.

как мне быть с этим, когда я пишу что-то вроде select * from events(Ip='1.1.1.1').win:time(2 min), у этого не будет соответствующих сообщений/событий, и esper не срабатывает.

как я должен вызвать esper, если события отсутствуют в данное время

заранее спасибо


person Manoj Kalluri    schedule 07.09.2017    source источник
comment
Можете ли вы показать нам свой код — как вы реализовали адаптер Kafka и процессор Esper?   -  person Leon    schedule 08.11.2018


Ответы (1)


Вы могли бы сделать это

select * from pattern [every (timer:interval(2 min) and not MyEvent)]

// совет: не называйте ваше событие "событиями", называйте его чем-то полезным и используйте верхний регистр

person user650839    schedule 11.09.2017
comment
Спасибо! Я понял это день назад, то, что вы ответили, совершенно верно. на самом деле раньше я пробовал что-то вроде select count(*) from myEvents.win:time(1 min) having 1>count(*) , которые не работают - наконец, я нашел решение, упомянутое выше. - person Manoj Kalluri; 11.09.2017
comment
В моем реальном коде это не события, я подумал, что членам сообщества будет легко понять мой вопрос, поэтому я использовал это events . спасибо, что указали на это - person Manoj Kalluri; 11.09.2017