我有以下需要连续运行的小型TelegramClient应用程序。我遇到的问题是,当Internet断开连接时,出现错误(附加图像),“永远不会检索到未来异常”,并且应用程序完全死亡。即使发生这种断开连接,如何确保我的应用程序继续运行?非常感谢您的帮助
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()
答案 0 :(得分:0)
第一个错误是使用NameError
而不是ConnectionError
来捕获错误,正如Lonami在评论中所说。
第二个错误是告诉您telethon尝试重新连接5次(这是默认设置),但在这5次中无法重新连接,因此引发了异常。
您可以选择ConnectionError
除外,或者如果您想让漫游器运行更长的时间,则可以增加重新连接的次数以及它们之间的延迟。所以一个例子是
client = TelegramClient("session", api_id, api_hash, connection_retries=sys.maxsize, retry_delay=10)
几乎可以永远重新连接。