for循环体内的任务如何由同步改为异步??
#这是一个异步任务函数体,每次处理一个url
async def checkLink(link: str):
do_something……
async def Task(linksList: list): #linksList是一组需要处理的url
try:
for link in linksList: #这里的for循环体出现了阻塞
resultDict = await checkLink(link)
if resultDict:
result.put(resultDict) #将处理结果(字典)放到结果队列中
else:
print(“处理结果异常”)
except Exception as e:
print(f"异常信息 {e}")
为了解决以上函数的for循环体的阻塞,我改为如下
async def checkLink(link: str):
do_something……
async def Task(linksList: list): #linksList是一组需要处理的url
try:
for link in linksList:
task.append(checkLink(link))
results = await asyncio.gather(*task) #使用asyncio.gather 进行异步分组处理,并将结果传给results
for resultDict in results: #遍历所有处理结果
if resultDict:
result.put(resultDict) #将处理结果(字典)放到结果队列中
else:
print(“处理结果异常”)
except Exception as e:
print(f"异常信息 {e}")
但是修改之后这个函数的语法貌似不对,请问该如何修改?
谢谢