Я знаю, как сработать, когда какое-то событие происходит в течение определенного промежутка времени, например:
select count(*) from MyEvent.win:time(10 sec) having count(*) >= 3
Но как сработать, если в течение 10 секунд не происходит событие?
Вот один из способов:
select * from pattern[every(timer:interval(10) and not MyEvent)]
В документации Esper есть страница с шаблонами решений, которая содержит дополнительную информацию по обнаружению пропусков.