如果没有互联网连接,如何在一段时间后重试连接不和谐机器人?
Posted
技术标签:
【中文标题】如果没有互联网连接,如何在一段时间后重试连接不和谐机器人?【英文标题】:How to retry connecting discord bot after some time if there is no internet connection? 【发布时间】:2020-11-14 03:48:22 【问题描述】:我希望我的 discord 机器人等待一段时间,如果第一次尝试连接失败,则重试连接。
我试过这个:
[Other codes]
.
.
.
while True:
client = MyClient()
try:
client.run(botToken)
except aiohttp.client_exceptions.ClientConnectorError:
print('Error, Trying again after 10 sec')
time.sleep(10)
我通过关闭互联网运行代码,但这给了我另一个错误。
RuntimeError: Event loop is closed
sys:1: RuntimeWarning: coroutine 'Client.run.<locals>.runner' was never awaited
【问题讨论】:
尝试将client = MyClient()
添加到您的while
循环中。否则,请编辑您的问题以包含minimal, reproducible example
【参考方案1】:
您必须像这样启动一个新客户端:
[Bot Code]
while True:
try:
client = MyClient(loop=asyncio.new_event_loop())
client.run(botToken)
except Exception as e:
print(f'Restarting in 10s\nError: e')
sleep(10)
【讨论】:
即使在重新建立连接后,它也会显示Error: Event loop is closed
。
尝试将 MyClient() 更改为 MyClient(loop=asyncio.new_event_loop()) 确保导入 asyncio
谢谢,添加 loop=asyncio.new_event_loop() 后它起作用了。请编辑答案并在此处添加。以上是关于如果没有互联网连接,如何在一段时间后重试连接不和谐机器人?的主要内容,如果未能解决你的问题,请参考以下文章
错误信息:由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败。foxmail无法发送邮件
由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失%