推荐学习书目
› 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 · Nov 4, 2025 · 4092 views
    This topic created in 364 days ago, the information mentioned may be changed or developed.
    在国内的服务器上用 python 写了一个电报机器人的脚本,使用 clash 代理来与电报通讯,但是隔几个小时就会出现一次网络问题,而且一出现机器人就会挂掉,即使后来网络恢复,机器人也响应不了电报的消息了。
    我目前的解决方法是捕获到异常就退出程序,然后 docker 再把它拉起来。。

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

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


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

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

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

    一定用国内阿里云,那就用 cloudflare tunnel + webhook 好了。当然,自己部署 tdlib 的 telegram bot api server + clash 也可以。不过这玩意翻墙环境下不太好折腾。
    julyclyde
    julyclyde
    Nov 6, 2025
    12
    @WangXXX 这玩意你部署在国内就是个错误,你还想着在错误上做备案之类的准备?
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1938 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 585ms · UTC 00:04 · PVG 08:04 · LAX 16:04 · JFK 19:04
    ♥ Do have faith in what you're doing.