请教一个关于电报机器人的问题 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
WangXXX
V2EX    Python

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

  •  
  •   WangXXX 40 天前 2030 次点击
    这是一个创建于 40 天前的主题,其中的信息可能已经有所发展或是发生改变。
    在国内的服务器上用 python 写了一个电报机器人的脚本,使用 clash 代理来与电报通讯,但是隔几个小时就会出现一次网络问题,而且一出现机器人就会挂掉,即使后来网络恢复,机器人也响应不了电报的消息了。
    我目前的解决方法是捕获到异常就退出程序,然后 docker 再把它拉起来。。

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

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


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

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

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

    一定用国内阿里云,那就用 cloudflare tunnel + webhook 好了。当然,自己部署 tdlib 的 telegram bot api server + clash 也可以。不过这玩意翻墙环境下不太好折腾。
    julyclyde
        12
    julyclyde  
       39 天前
    @WangXXX 这玩意你部署在国内就是个错误,你还想着在错误上做备案之类的准备?
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3215 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 21ms UTC 11:19 PVG 19:19 LAX 03:19 JFK 06:19
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86