Flink - Asyn c IO оператор для серии вызовов API - PullRequest
0 голосов
/ 04 февраля 2020

Мы используем асинхронный оператор c IO для вызова внешних API. У нас был только один вызов API на событие до сих пор. Но у нас есть требование, чтобы нам приходилось вводить несколько вызовов API для каждого события. Использование потоков в операторе и выполнение вызовов в серии предоставило решение, но не противоречит ли это цели использования Asyn c IO ?. Может ли использование потоков вызвать другие проблемы?

1 Ответ

2 голосов
/ 04 февраля 2020

Теперь вы фактически используете asyncIO, как и было задумано. asyncIO не создает никаких потоков самостоятельно, но ожидает, что пользовательский код сделает это прямо или косвенно.

Существует два основных варианта использования: 1) Использование внешних обратных вызовов, когда используемая библиотека возвращает результат. Например, используя реактивный API mongodb. 2) Поддержание пользовательского пула потоков (например, с Executors.newFixedThreadPool) и использование его для выполнения асинхронных операций c вручную.

Вы используете второй подход.

Без использования какого-либо из них, asyncIO это просто медленный map.

...