【发布时间】:2021-11-18 07:52:08
【问题描述】:
我是 asyncio 的新手,试图对 API 进行异步调用,但是当我发送超过 1 个请求/秒时,API 以 429 状态代码响应 - 请求太多...根据 API 文档,我应该只做 1 个请求/秒。
无法弄清楚如何每秒只有 1 个请求:
#Call to API
async def ps_request_marshal(converted_urls, device_input):
global device_settings, data, tasks
data = []
device_settings = device_input
tasks = []
url = 'https://www.googleapis.com/pagespeedonline/v5/runPagespeed?url={}' '&key=+key &strategy=' +device_input
async with aiohttp.ClientSession() as session:
for page in converted_urls:
tasks.append(asyncio.create_task(session.get(url.format(page), ssl=False)))
responses = await asyncio.gather(*tasks)
for response in responses:
data.append(await response.json())
print(responses)
非常感谢您的帮助!
【问题讨论】:
标签: python api asynchronous python-asyncio aiohttp