Когда использовать функцию CoProcess во Flink?

Я просто пытаюсь понять вариант использования, когда использовать CoProcessFunction во Flink. Объяснение на примере поможет мне лучше понять концепцию.


person Shailendra    schedule 27.07.2019    source источник


Ответы (1)


CoProcessFunction похожа на RichCoFlatMap, но с добавлением возможности использовать таймеры. Таймеры полезны для истечения срока действия устаревших ключей или для подачи сигналов тревоги, когда, например, сообщения проверки активности не приходят.

Функция CoProcessFunction позволяет использовать один поток, чтобы влиять на обработку другого или обогащать другой поток. Например, на сайте электронной коммерции может быть поток событий заказа и поток событий отгрузки, и они хотят создать поток событий для заказов, которые не были отправлены в течение 24 часов с момента размещения заказа. Два потока могут иметь ключ orderId и соединяться вместе. По мере поступления заказа он записывается в заблокированном состоянии, и создается таймер, который срабатывает через 24 часа. Когда наступает событие отгрузки, состояние и таймер очищаются. Если таймер действительно срабатывает, состояние используется для отправки заказа в службу невыполненных заказов.

Подробнее об этом и примерах с кодом см. подключенные потоки и функция процесса и лабораторные работы, сопровождающие эти руководства.

person David Anderson    schedule 28.07.2019
comment
Ссылки на вышеупомянутые подключенные потоки и пример функции процесса выглядят поврежденными, не могли бы вы предоставить обновленные. Спасибо. - person Mazen Ezzeddine; 05.07.2020
comment
@Mazen Ссылки исправлены; спасибо, что указали на проблему. - person David Anderson; 06.07.2020
comment
Ссылки снова повреждены, не могли бы вы их обновить? - person abdo_mah90; 09.03.2021
comment
Готово, приносим извинения за неудобства. - person David Anderson; 09.03.2021