Простая последовательность событий

Предположим, что события типа 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()
Другие вопросы по тегам