使用Python Asyncio库同时运行恒定数量的异步任务

时间:2018-08-14 21:06:19

标签: python url asynchronous python-asyncio aiohttp

我有一个程序,需要在其中进行大量的URL请求。我不能同时发出所有请求,因为总是有新的URL添加到队列中。我也无法同步运行它们,因为某些请求需要很长时间才能完成,这会使程序变慢。我认为最好是通过在任务完成时启动新任务来确保同时运行特定数量的异步任务。

问题是,除了创建大量任务并等待它们之外,我没有找到其他使用asyncio库的方法。这是有问题的,因为总是有几个请求被卡住,导致程序在等待时被卡住。

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

您可以使用asyncio.wait_for()或使用此https://github.com/aio-libs/async-timeout