Flink CEP: Как проверить, не появилось ли следующее событие в заданном временном окне?
Я пытаюсь выяснить, как реализовать следующую логику, имеющую поток событий:
- Первое событие появляется в заданном временном окне (30 с)
- Второе событие, связанное с первым (некоторым свойством) , не появилось в данном временном окне
- Создать новое событие ошибки
В настоящее время я реализовал "противоположную" реализацию, которая была довольно простой:
stream.begin('first').where({conditions}).next('second').where({conditions}).within(Time.seconds(30))
1 ответ
Можно использовать PatternTimeoutFunction
генерировать новые события, когда события не получены во временном окне. Подробнее об этом типе функций и о том, как его использовать, можно узнать здесь: https://ci.apache.org/projects/flink/flink-docs-release-1.3/api/java/org/apache/flink/cep/PatternTimeoutFunction.html,