小编Smi*_*miP的帖子

Python - asyncio - 从未检索到任务异常

描述:(简化)

  • 我有 2 个任务。
  • 在每个任务中我有 3 个协程。
  • 第一个任务的 2 个协程失败。(模拟)
  • 在处理任务结果时,我收到一条“从未检索到任务异常”消息。
  • 我相信这是因为该任务中仅处理了两个失败的协程之一的异常。
  • 如何处理任务中两个协程的异常和/或避免“从未检索到任务异常”消息?

代码:(简体)

import asyncio
async def download(data):
    filename = "*" if data in ["b", "c"] else data  # simulated failure
    with open(filename, "w") as f:
        f.write(data)
async def coro(data_list):
    coroutines = [download(data) for data in data_list]
    for coroutine in asyncio.as_completed(coroutines):
        await coroutine
async def main():
    task1 = asyncio.create_task(coro(["a", "b", "c"]))
    task2 = asyncio.create_task(coro(["d", "e", "f"]))
    results = await asyncio.gather(task1, task2, return_exceptions=True)
    for _ in results:
        pass
asyncio.run(main())
Run Code Online (Sandbox Code Playgroud)

输出:(简化) …

python asynchronous coroutine python-asyncio

10
推荐指数
1
解决办法
2万
查看次数

标签 统计

asynchronous ×1

coroutine ×1

python ×1

python-asyncio ×1