文章内容
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
黄兵个人博客原创。
asyncio.exceptions.TimeoutError
Original exception was: Could not determine join condition between parent/child tables on relationship
Original exception was: Could not determine join condition between parent/child tables on relationship
评论列表