请教一个关于电报机器人的问题

2025 年 11 月 4 日
 WangXXX
在国内的服务器上用 python 写了一个电报机器人的脚本,使用 clash 代理来与电报通讯,但是隔几个小时就会出现一次网络问题,而且一出现机器人就会挂掉,即使后来网络恢复,机器人也响应不了电报的消息了。
我目前的解决方法是捕获到异常就退出程序,然后 docker 再把它拉起来。。

请问有没有更好的解决方法?

使用的 python 库是 python-telegram-bot
用 run_polling 的方法启动的程序。
3019 次点击
所在节点    Python
12 条回复
moen
2025 年 11 月 4 日
长时间工作应当使用 webhook 来获取消息
gesse
2025 年 11 月 4 日
国外便宜年付的服务器多如牛毛,你都要用电报了,国外 vps 不标配吗?
JoeJoeJoe
2025 年 11 月 4 日
用 webhook ,挂到 cloudflare 上可以.
ration
2025 年 11 月 5 日
用的 telethon 库,没遇到这个问题
PungentSauce
2025 年 11 月 5 日
用的库或者编写的连接没有加入断连重连的逻辑吧。
Sunya233
2025 年 11 月 5 日
也可以写一个 systemd unit 自动重启
julyclyde
2025 年 11 月 5 日
我觉得你现在这个做法挺好的
该死就死,别挣扎,没用的
诈尸不是自己的责任,得依赖外部法师(容器/systemd/k8s )


以我的经验:即使放在墙外,偶尔也会遇到网络不通的情况、返回 json 不 ok 的情况等等
其实可以考虑 webhook 模式,处理单个 update 之后就退出,即使失败不会影响处理其他 update
WangXXX
2025 年 11 月 6 日
要部署在国内,用 webhook 得有一个备案好的域名+ssl 证书吧
WangXXX
2025 年 11 月 6 日
还是搞个外面的 vps 感觉简单些
WangXXX
2025 年 11 月 6 日
阿里的服务器折腾一天,各种连接拒绝,换成外面的 vps 一会就搞好了:)
MrMiHa
2025 年 11 月 6 日
框架选的比较有品位 ~~~ 赞一个

ptb 的轮询模式是不适合生产环境的,还是 webhook 吧,配合 fastapi 美滋滋。

至于主机,国外便宜小鸡多的是,随便一个都可以,推荐荷兰的主机。

一定用国内阿里云,那就用 cloudflare tunnel + webhook 好了。当然,自己部署 tdlib 的 telegram bot api server + clash 也可以。不过这玩意翻墙环境下不太好折腾。
julyclyde
2025 年 11 月 6 日
@WangXXX 这玩意你部署在国内就是个错误,你还想着在错误上做备案之类的准备?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://study.congcong.us/t/1170526

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX