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 · 17 小时 37 分钟前 · 776 次点击
    在国内的服务器上用 python 写了一个电报机器人的脚本,使用 clash 代理来与电报通讯,但是隔几个小时就会出现一次网络问题,而且一出现机器人就会挂掉,即使后来网络恢复,机器人也响应不了电报的消息了。
    我目前的解决方法是捕获到异常就退出程序,然后 docker 再把它拉起来。。

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

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


    以我的经验:即使放在墙外,偶尔也会遇到网络不通的情况、返回 json 不 ok 的情况等等
    其实可以考虑 webhook 模式,处理单个 update 之后就退出,即使失败不会影响处理其他 update
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   Solana   ·   5301 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 07:34 · PVG 15:34 · LAX 23:34 · JFK 02:34
    ♥ Do have faith in what you're doing.