如果没有互联网连接,如何在一段时间后重试连接不和谐机器人?

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() 后它起作用了。请编辑答案并在此处添加。

以上是关于如果没有互联网连接,如何在一段时间后重试连接不和谐机器人?的主要内容,如果未能解决你的问题,请参考以下文章

使 wget 在 3XX 重定向后重试原始 URL

校园网inode连接网络之后直接认证无响应,5分钟后重试

错误信息:由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败。foxmail无法发送邮件

由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失%

如何解决“连接尝试失败,因为连接方在一段时间后没有正确响应......”错误?

由于连接方在一段时间后没有正确答复或连接的主机没有反应”,连接尝试失败