【发布时间】:2018-08-11 10:19:26
【问题描述】:
我有一个 discord.py 机器人,我目前正在本地托管它,它正在成熟。
我想让它能够抵御我的互联网连接中的瞬间中断,但我很难过。当连接失败时,代表正常bot操作的阻塞Client.run()结束并关闭事件循环。几分钟后我不能再打电话给Client.run(),因为事件循环已关闭。
我尝试过重新声明 Client 对象,但这似乎没有使用新的事件循环。我正在浏览 discord.py 和 python 事件循环文档,但无法弄清楚如何获取新的事件循环并改用它。
我已经按照asyncio.set_event_loop(asyncio.new_event_loop()) 的方式进行了尝试,但似乎没有任何区别 - 我仍然无法重新调用Client.run(),因为事件循环已关闭。
【问题讨论】:
-
重写分支向
connect(从run调用的协程之一)引入了一些重新连接逻辑。您可以尝试尽早切换到 rewrite 分支,看看是否会有所改善。
标签: python python-asyncio discord discord.py