Bootstrap

kafka_to_redis--asyncio的报错:Event loop is closed !


报错1:

Event loop is closed  !

或者打断点调试查看loop的值为:

<_WindowsSelectorEventLoop running=False closed=True debug=False>

解决参考:https://xbuba.com/questions/51894809

解决:



代码:

# Windows平台loop = asyncio.get_event_loop()将创建一个_WindowsSelectorEventLoop对象。
# 运行默认值为True。所以你应该删除“loop.run_until_complete(some_task())”
# 如果你在linux平台上运行,你将得到一个_UnixSelectorEventLoop对象。
# < _UnixSelectorEventLoop running=False closed=False debug=False > 那没关系。

self.loop = asyncio.get_event_loop()

if platform.system() == 'Linux' or platform.system() == 'Darwin':
    self.loop.run_until_complete(self.handle_main(data))
else:
    self.handle_main(data)
# self.redis_close()


MR.zhou 解决方案:
def 为同步函数,async 为异步函数,同步函数里面调用异步函数应该注意:

;