异步收集动态 API 调用数量

问题描述 投票:0回答:1

我的情况很独特。我正在创建一个通用代码实用程序,我的任务是通过异步 API 调用来提高性能。大多数程序都有 6 到 10 个相同的 API 调用来读取不同的值。想法是在启动时以异步方式进行这些 API 调用。例如,编写一个方法,该方法将采用字符串(键)数组并为每个键触发异步调用,如下所示。

results = await asyncio.gather( 
call_api(key1), 
call_api(key2),
call_api(key3)
)

按键数量是动态的。编写此代码以在 python 中进行动态数量的 call_api/API 调用的最佳方法是什么?

python-3.x python-asyncio
1个回答
0
投票

我认为您正在寻找 unpack 运算符 (

*
):

# ...

keys = ["key1", "key2", "key3"]  # <-- dynamic list of all keys

api_calls_tasks = [asyncio.create_task(call_api(k)) for k in keys]

results = await asyncio.gather(*api_calls_tasks)
© www.soinside.com 2019 - 2024. All rights reserved.