首页 > 解决方案 > 使用 Python Asyncio 库同时运行恒定数量的异步任务

问题描述

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

问题是除了制作大量任务并等待它们之外,我还没有找到任何其他方式来使用 asyncio 库。这是有问题的,因为总是有几个请求卡住,导致程序卡在等待状态。

我将如何解决这个问题?

标签: pythonurlasynchronouspython-asyncioaiohttp

解决方案


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


推荐阅读