Flink - 用于一系列 API 调用的异步 IO 运算符
Flink - Async IO operator for series of API calls
我们正在使用异步 IO 运算符来调用外部 API。到目前为止,我们每个事件只有一次 api 调用。但是,我们有一个要求,我们必须为每个事件引入多个 API 调用。在运算符中使用线程并进行系列调用确实提供了解决方案,但这是否会破坏使用异步 IO 的目的?使用线程会导致任何其他问题吗?
您现在确实在按预期使用 asyncIO
。 asyncIO
不会在其自身上产生任何线程,但希望用户代码直接或间接这样做。
有两个主要用例:
1) 使用外部回调,其中受雇库 returns 结果。例如,使用反应式 API of mongodb。
2)维护一个自定义的线程池(比如用Executors.newFixedThreadPool
),用它来手动实现异步操作。
您正在使用第二种方法。
不使用它们中的任何一个,asyncIO
只是一个缓慢的 map
。
我们正在使用异步 IO 运算符来调用外部 API。到目前为止,我们每个事件只有一次 api 调用。但是,我们有一个要求,我们必须为每个事件引入多个 API 调用。在运算符中使用线程并进行系列调用确实提供了解决方案,但这是否会破坏使用异步 IO 的目的?使用线程会导致任何其他问题吗?
您现在确实在按预期使用 asyncIO
。 asyncIO
不会在其自身上产生任何线程,但希望用户代码直接或间接这样做。
有两个主要用例:
1) 使用外部回调,其中受雇库 returns 结果。例如,使用反应式 API of mongodb。
2)维护一个自定义的线程池(比如用Executors.newFixedThreadPool
),用它来手动实现异步操作。
您正在使用第二种方法。
不使用它们中的任何一个,asyncIO
只是一个缓慢的 map
。