You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Render部署Telegram Bot三小时后触发ConnectionResetError故障求助

问题分析与解决方案

你的Telegram Bot在Render平台运行约3小时后触发ConnectionResetError(104, 'Connection reset by peer'),重启后故障重复出现,添加固定sleep无法解决。核心原因大概率是长连接闲置被断开、请求频率触发目标服务限流或Render平台的连接策略限制,以下是针对性解决方案:

  • 实现带指数退避的请求重试机制
    固定sleep无法应对动态的限流或临时连接波动,改用指数退避的重试逻辑,同时捕获各类请求异常:

    import requests
    from requests.adapters import HTTPAdapter
    from urllib3.util.retry import Retry
    
    # 配置重试策略
    session = requests.Session()
    retry_strategy = Retry(
        total=3,
        backoff_factor=1,  # 指数退避间隔:1s → 2s → 4s
        status_forcelist=[429, 500, 502, 503, 504],
        allowed_methods=["GET"]
    )
    adapter = HTTPAdapter(max_retries=retry_strategy)
    session.mount("https://", adapter)
    session.mount("http://", adapter)
    
    # 使用session发起请求
    try:
        r = session.get(get_url(name), headers=headers, timeout=10)
        r.raise_for_status()  # 主动触发HTTP状态码错误
        soup = bs(r.content, features='html.parser')
    except requests.exceptions.RequestException as e:
        # 记录错误日志,必要时给Telegram用户返回提示
        print(f"请求失败: {str(e)}")
    
  • 给Telegram Bot添加心跳保活
    Telegram Bot的长连接若长时间闲置,可能被Render的负载均衡或防火墙断开,添加定时心跳任务保持连接活跃:

    import time
    from telegram import Update
    from telegram.ext import Updater, CallbackContext
    
    def keep_alive(context: CallbackContext):
        # 定期发送getMe请求维持连接
        try:
            context.bot.get_me()
            print("心跳包发送成功,连接保持活跃")
        except Exception as e:
            print(f"心跳包发送失败: {str(e)}")
    
    # Bot初始化时添加定时任务,每15分钟执行一次
    updater = Updater("YOUR_BOT_TOKEN")
    job_queue = updater.job_queue
    job_queue.run_repeating(keep_alive, interval=900, first=0)  # 900秒=15分钟
    
  • 排查Render平台的服务限制

    • 查看Render控制台的Metrics面板,检查CPU、内存及连接数是否达到套餐阈值
    • 检查Bot进程是否存在连接泄漏问题,确保每次请求后正确关闭session,避免连接池耗尽
  • 优化请求头部与频率控制

    • 不要用固定sleep,改为根据目标服务的响应调整间隔,比如收到429限流错误时延长等待时间
    • 完善请求头部,添加真实的User-Agent、Referer等字段,模拟正常浏览器请求,避免被目标服务识别为爬虫断开连接

内容的提问来源于stack exchange,提问作者TheAtef

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 02:05:07