
Jackett 429 限流报错3步搞定 TooManyRequestsException 的终极排查【免费下载链接】JackettAPI Support for your favorite torrent trackers项目地址: https://gitcode.com/GitHub_Trending/ja/Jackett在 Jackett 的手动搜索里敲下关键词结果列表刷了一半某个索引器的位置弹出一行429 Rate limited紧接着就是 TooManyRequestsException——你的 Jackett 正在被站点劝退。这篇就把这个报错的来龙去脉和处理步骤讲透。429 是站点按了暂停键不是你的账号出了问题。想修好它得先知道 Jackett 是怎么接住这次限流的。429 在 Jackett 内部走了什么路追踪器站点怕服务器被打挂会对请求频率下手超了就回一个 HTTP 429。Jackett 里各索引器的解析代码发现 429 后会主动抛出这个异常比如 FileList 索引器里就有这样一段if ((int)indexerResponse.Status 429) { throw new TooManyRequestsException(Rate limited, indexerResponse); }异常类本体在 TooManyRequestsException.cs它身上最重要的东西是RetryAfter属性站点在响应头里给了Retry-After: 60它就存 60 秒没给就留个空值让上层兜底。两个设计意图值得记住等站点的指令而不是自己瞎猜优先解析Retry-After头里的秒数或日期站点说等多久就记多久避免一限流就满屏重试风暴。限流状态会传染给整个索引器的健康检查索引器基础类捕获到这个异常后会把该索引器的健康有效期顺延RetryAfter的时长这段时间内它会被标记为不可用而不是继续发请求撞墙。说白了这个报错本身不是终点而是 Jackett 在替你执行冷却期。弄懂了冷却机制处理起来就有顺序了。处理 429 报错的 3 个动手步骤先开启搜索缓存拦住重复请求同一查询短时间内重复打站点是最容易触顶的频率来源。Jackett 对每个查询都有缓存层命中缓存就不发请求。别在第三方客户端里把忽略缓存选项勾上重复搜索让它走缓存。客户端的轮询间隔调到 5 分钟以上和站点的免费额度对得上。关掉用不到的索引器每个启用的索引器都会独立响应你的每次搜索18 个索引器同时查就是 18 路请求同时压出去。打开配置页把长期不用的索引器直接禁用或删除。私有站只保留一两个主力公开站挑响应快的数量控制在个位数。读懂 Retry-After学会等它自己好想确认还要等多久看响应头就行。ResultsController.cs里对 Torznab 请求的处理是这样的var retryTime tooManyRequestsException.RetryAfter ! TimeSpan.Zero ? tooManyRequestsException.RetryAfter : TimeSpan.FromMinutes(1);站点没给时间就按 1 分钟兜底。看到 429 响应头里的Retry-After值就安静等它过去别手动狂点搜索。等完仍频繁触发说明是你自己的查询节奏压着上限回到前两步继续降频。一张图把这条链路走完。一图看懂限流与恢复关键就在 F 这一步Jackett 会主动停手你唯一要做的是别在冷却期里继续手动搜索帮倒忙。最后列几个高频翻车点对着自查一遍。避开这些坑429 就不容易再来多站并发私有站一般按并发算额度搜索前把无关索引器全部关掉。缓存白开客户端每次强制刷新会绕过缓存等于给站点喂重复流量。不看日志Jackett 日志会记下每次 429 的时间和来源排查前先看日志再动手。改代码当捷径这是配置层面的问题改源码等不到站点解除限流调间隔才是正解。想往源码深处再走一步这几个入口就够。延伸入口异常本体TooManyRequestsException.cs冷却与健康状态的实现BaseIndexer.cs项目说明README.md429 说白了就是站点说稍后再来别追着它。【免费下载链接】JackettAPI Support for your favorite torrent trackers项目地址: https://gitcode.com/GitHub_Trending/ja/Jackett创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考