Комбинация Flink windowByTime и triggerByCount

source.keyBy(0)
    .window(TumblingEventTimeWindows.of(Time.seconds(5)))
    .trigger(PurgingTrigger.of(CountTrigger.of[TimeWindow](2)))
    .process(new TestFun())

Объяснение:

Допустим, у меня есть 3 события [E1, E2, E3], которые должны запускаться по количеству, а также по времени. Я использую countTrigger для запуска только 2 событий (E1 и E2), но оставшееся событие E3 не запускается.

Ожидается: событие E3 должно срабатывать через 5 секунд, но на самом деле оно вызывает только события E1 и E2


person Tulasi    schedule 20.07.2020    source источник


Ответы (1)


Предоставленный вами CountTrigger заменяет EventTimeTrigger, который обычно используется с TumblingEventTimeWindow, а не расширяет или дополняет его. Чтобы получить желаемое поведение, вам нужно будет реализовать собственный триггер, который может ЗАПУСКАТЬ окно на основе как подсчета, так и тайм-аута.

поиск Google Найду несколько примеров и обсуждения.

person David Anderson    schedule 20.07.2020
comment
Спасибо. Это помогло мне stackoverflow.com/ вопросы/49783676/ - person Tulasi; 20.07.2020