Эспер - обнаружить отсутствие определенного события
Можно ли обнаружить отсутствие определенного типа события в заданном временном окне, не используя другие типы событий в Esper?
Спасибо;)
2 ответа
Вы можете взглянуть на шаблоны решений здесь для некоторых идей: http://www.espertech.com/esper/solution-patterns
Вот адаптированный пример обнаружения отсутствия события после его запуска один раз:
select * from pattern [every EventX -> (timer:interval(10 sec) and not EventX)];
Это сработает только один раз, если после получения EventX не будет получено никакого другого EventX в течение 10 секунд...
Этот пример:
select * from pattern [every (timer:interval(10 sec) and not EventX)];
Срабатывает каждые 10 секунд, если в течение этого времени не было получено ни одного EventX (и будет продолжать стрелять так, как это).
Внешние объединения также являются хорошим способом обнаружения отсутствия события.