Простая последовательность событий
Предположим, что события типа A, B, C или D испускаются. Я хочу обнаруживать всякий раз, когда за событием типа A следует событие типа B. Другими словами, я хочу обнаруживать последовательности, для которых EPL Esper обеспечивает ->
оператор.
Однако то, что я описал выше, является неоднозначным, и мне нужно следующее: всякий раз, когда обнаруживается B, я хочу, чтобы он соответствовал самому последнему A.
Я играл с синтаксисом EPL, но лучшее, что я мог придумать, было то, что:
select * from pattern [(every a=A) -> b=B]
Это, однако, соответствует каждому B с самым старым A, который произошел после последнего совпадения. Weird...
Помощь очень ценится!:П
1 ответ
Решение
Я часто использую соединения для простого соответствия. Другой вариант - распознавание совпадений. Соединение, как это.
select * from B unidirectional, A.std:lastevent()