Я просто пытаюсь понять вариант использования, когда использовать CoProcessFunction во Flink. Объяснение на примере поможет мне лучше понять концепцию.
Когда использовать функцию CoProcess во Flink?
Ответы (1)
CoProcessFunction похожа на RichCoFlatMap, но с добавлением возможности использовать таймеры. Таймеры полезны для истечения срока действия устаревших ключей или для подачи сигналов тревоги, когда, например, сообщения проверки активности не приходят.
Функция CoProcessFunction позволяет использовать один поток, чтобы влиять на обработку другого или обогащать другой поток. Например, на сайте электронной коммерции может быть поток событий заказа и поток событий отгрузки, и они хотят создать поток событий для заказов, которые не были отправлены в течение 24 часов с момента размещения заказа. Два потока могут иметь ключ orderId и соединяться вместе. По мере поступления заказа он записывается в заблокированном состоянии, и создается таймер, который срабатывает через 24 часа. Когда наступает событие отгрузки, состояние и таймер очищаются. Если таймер действительно срабатывает, состояние используется для отправки заказа в службу невыполненных заказов.
Подробнее об этом и примерах с кодом см. подключенные потоки и функция процесса и лабораторные работы, сопровождающие эти руководства.