我正在构建一个异步应用程序,该应用程序尝试使用grequests一次发送101个请求。
出现的问题是,我无法通过使用来自简单同步请求的grequest来获得改善。
为了解决我的问题,我尝试通过切换到imap来进行更动态的查询发送,从而调整grequests.map(rs, size=101)
。另外,将大小更改为较小的数字。
base_url = "https://www.reed.co.uk/api/1.0/jobs/"
ids_to_execute = [urls]
rs = (grequests.get(base_url + str(url),
auth=('auth', ''), stream=False) for url in ids_to_execute)
def lambda_handler(event,context):
newJobsdic = []
for response in grequests.map(rs, size=101):
if not ids_to_execute:
print ("No new jobs to generate")
break
else:
newJobsdic.append(json.loads(response.content))
根据我的基本理解,newJobsdic.append(json.loads(response.content))
不会使应用程序异步,因为它会将每个查询的结果附加到字典上。我的问题是,是否有一种方法可以一次性获取所有101个查询的结果,而无需我遍历每个查询。
此外,由于我对异步请求的理解有限,因此任何改进建议都受到欢迎。