在Python中,你可以使用asyncio模块来监听多个异步任务并依次处理它们的通知。以下是一个简单的示例,展示了如何使用asyncio.wait或asyncio.gather来监听多个异步任务,并按照它们完成的顺序逐一处理:
import asyncio
# 假设这是异步任务函数
async def async_task(id, delay):
await asyncio.sleep(delay)
print(f"Task {id} finished after {delay} seconds.")
return id
async def process_tasks(tasks):
# 使用asyncio.wait监听任务完成
done, pending = await asyncio.wait(tasks)
# 按完成顺序处理结果
for future in done:
result = future.result()
print(f"Processing result from task {result}...")
# 创建一组异步任务
tasks = [asyncio.ensure_future(async_task(i, i+1)) for i in range(3)]
# 运行事件循环并处理任务
asyncio.run(process_tasks(tasks))
或者,如果你希望所有任务完成后一起处理结果,可以使用asyncio.gather:
async def process_tasks(tasks):
results = await asyncio.gather(*tasks)
for result in results:
print(f"Processing result from task {result}...")
# 同样的任务列表
tasks = [asyncio.ensure_future(async_task(i, i+1)) for i in range(3)]
# 使用asyncio.run启动并收集结果
asyncio.run(process_tasks(tasks))
在这两个示例中,asyncio.sleep模拟了一个耗时操作。在实际应用中,你可能会有网络请求、数据库查询或其他类型的异步操作。当任务完成后,你会收到通知并按顺序或同时处理这些任务的结果。
当前文章价值7.01元,扫一扫支付后添加微信提供帮助!(如不能解决您的问题,可以申请退款)

评论已关闭!