Telethon-断开连接时“从未检索到未来异常”

时间:2019-09-05 19:13:00

标签: telethon

我有以下需要连续运行的小型TelegramClient应用程序。我遇到的问题是,当Internet断开连接时,出现错误(附加图像),“永远不会检索到未来异常”,并且应用程序完全死亡。即使发生这种断开连接,如何确保我的应用程序继续运行?非常感谢您的帮助

enter image description here

from telethon.sync import TelegramClient, events

#api_id, api_has, chatIdToUse defined here

with TelegramClient('myusername', api_id, api_hash) as client:

    #https://docs.telethon.dev/en/latest/
    @client.on(events.NewMessage(chats=chatIdToUse, pattern=r'(HELLOWORLD)'))
    async def handler(event):
        print("-------------------------------------------------------------------")
        print('Received message')

    try:
        print("Running client until disconnected...")
        client.run_until_disconnected()
    #tried adding this doesn't work
    except NameError as err:
        print("TelegramClient exception:", err)
    finally:
        client.disconnect()

1 个答案:

答案 0 :(得分:0)

第一个错误是使用NameError而不是ConnectionError来捕获错误,正如Lonami在评论中所说。

第二个错误是告诉您telethon尝试重新连接5次(这是默认设置),但在这5次中无法重新连接,因此引发了异常。

您可以选择ConnectionError除外,或者如果您想让漫游器运行更长的时间,则可以增加重新连接的次数以及它们之间的延迟。所以一个例子是

client = TelegramClient("session", api_id, api_hash, connection_retries=sys.maxsize, retry_delay=10)

几乎可以永远重新连接。