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

使用Tweepy StreamingClient调用add_rules遇Error 429连接超限求助

解决Tweepy调用.add_rules()时出现Error 429(连接数超限)问题

错误原因分析

Error 429提示“This stream is currently at the maximum allowed connection limit.”,核心原因是你的Twitter开发者账号对应的流式API连接数已达上限——免费版API通常只允许1个活跃的流式连接,若之前的连接未正确关闭(比如脚本意外崩溃、进程残留),就会占用连接名额,导致新请求被拒绝。

解决方案

  • 关闭残留的活跃连接:检查本地是否有其他使用同一Bearer Token的Python进程在运行流式任务,用任务管理器/终端杀掉这些进程;如果是服务器上运行,用ps aux | grep python找到进程并终止。
  • 确保连接正确关闭:修改代码,添加异常处理和连接关闭逻辑,避免意外中断时连接残留:
    import signal
    import sys
    
    client = tweepy.StreamingClient(bearer_token=TWITTER_BEARER_TOKEN)
    
    def handle_exit(signal_num, frame):
        print("Closing stream connection...")
        client.disconnect()
        sys.exit(0)
    
    # 注册信号处理,捕获终止信号
    signal.signal(signal.SIGINT, handle_exit)
    signal.signal(signal.SIGTERM, handle_exit)
    
    # 修正StreamRule的语法错误(多余的右括号)
    try:
        client.add_rules(tweepy.StreamRule("(from:kingerman88 OR from:KingerTester) -is:reply"))
        print("Bot Online!")
        client.filter(expansions=['author_id', 'in_reply_to_user_id'], user_fields=["id", "name", "username"])
    except Exception as e:
        print(f"Error: {e}")
        client.disconnect()
    
  • 等待连接释放:如果是之前的连接意外中断,Twitter的服务器可能需要几分钟时间释放连接名额,等待10-15分钟后再重新运行脚本。
  • 检查API权限限制:登录Twitter开发者平台,查看你的项目的流式API配额,确认是否超出了并发连接数限制(免费版默认1个)。

额外注意事项

你的代码中StreamRule存在语法错误——末尾多了一个右括号,修正后能避免不必要的请求异常,虽然这不是429错误的直接原因,但建议优先修正。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 07:05:24