asyncio --错误信息处理: RuntimeError: Event loop is closed

出现这个错误信息的来源

  • 用 asyncio.run()方法执行任务时,有时候会出现这样的错误
  • 虽然代码执行没有问题,但是报错总感觉不爽

解决办法:

1.解决办法一:

  • 不用asyncio.run() 去执行任务,换成
loop = asyncio.get_event_loop()
loop.run_until_complete(asyncio.wait(task_list))

2.解决办法二,重写父类的方法,代码示例:

from functools import wraps
from asyncio.proactor_events import _ProactorBasePipeTransport

def silence_event_loop_closed(func):
    @wraps(func)
    def wrapper(self, *args, **kwargs):
        try:
            return func(self, *args, **kwargs)
        except RuntimeError as e:
            if str(e) != 'Event loop is closed':
                raise
    return wrapper
_ProactorBasePipeTransport.__del__ = silence_event_loop_closed(_ProactorBasePipeTransport.__del__)
posted @   志强爱璇璇  阅读(1332)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· DeepSeek 开源周回顾「GitHub 热点速览」
点击右上角即可分享
微信分享提示