文章内容

2021/12/14 11:39:52,作 者: 黄兵

RuntimeError: Event loop is closed


今天检查 Ubuntu 运行的服务,出现了以下错误:

12-14 01:35 apscheduler.executors.default ERROR    Job "PingMonitorMain.run_web_transmission (trigger: interval[1:00:00], next run at: 2021-12-14 02:35:22 UTC)" raised an exception
Traceback (most recent call last):
  File "/var/Service_Ping_Monitor/venv/lib/python3.8/site-packages/apscheduler/executors/base.py", line 125, in run_job
    retval = job.func(*job.args, **job.kwargs)
  File "ping_monitor_main.py", line 30, in run_web_transmission
    loop.run_until_complete(self._init_web_transmission.write_csv())
  File "/usr/lib/python3.8/asyncio/base_events.py", line 591, in run_until_complete
    self._check_closed()
  File "/usr/lib/python3.8/asyncio/base_events.py", line 508, in _check_closed
    raise RuntimeError('Event loop is closed')
RuntimeError: Event loop is closed
12-14 02:35 apscheduler.executors.default ERROR    Job "PingMonitorMain.run_web_transmission (trigger: interval[1:00:00], next run at: 2021-12-14 03:35:22 UTC)" raised an exception
Traceback (most recent call last):
  File "/var/Service_Ping_Monitor/venv/lib/python3.8/site-packages/apscheduler/executors/base.py", line 125, in run_job
    retval = job.func(*job.args, **job.kwargs)
  File "ping_monitor_main.py", line 30, in run_web_transmission
    loop.run_until_complete(self._init_web_transmission.write_csv())
  File "/usr/lib/python3.8/asyncio/base_events.py", line 591, in run_until_complete
    self._check_closed()
  File "/usr/lib/python3.8/asyncio/base_events.py", line 508, in _check_closed
    raise RuntimeError('Event loop is closed')
RuntimeError: Event loop is closed

循环已经关闭,具体错误代码如下:

def run_web_transmission(self):
loop = asyncio.get_event_loop()
loop.run_until_complete(self._init_web_transmission.write_csv())

我们需要创建一个新的循环:

def run_web_transmission(self):
loop = asyncio.new_event_loop()
asyncio.set_event_loop(asyncio.new_event_loop())
asyncio.get_event_loop()
loop.run_until_complete(self._init_web_transmission.write_csv())

修改了代码之后,重新部署,运行一段时间看看是否问题解决。


参考资料:

1、"Asyncio Event Loop is Closed" when getting loop


黄兵个人博客原创。

转载请注明出处:黄兵个人博客 - RuntimeError: Event loop is closed

分享到:

发表评论

评论列表