要让一个代理在四次尝试中保持不变,先在遍历列表之前把尝试索引分组。给定一个经过校验且非空的 proxies 数组,以及一个从零开始的非负整数 i:

const proxy = proxies[Math.floor(i / 4) % proxies.length];

索引 0–3 选择第一个条目,4–7 选择第二个,8–11 选择第三个。取余会把组号在最后一个条目之后绕回第一个代理。使用这个表达式之前,请先拒绝空数组。

配置该次尝试的 HTTP 客户端时,使用选中的 URL。免费代理列表 为数组提供公开候选;请用该客户端支持的协议格式化每个 URL。算术只负责安排端点;它本身不会改变浏览器或已经连接的客户端。

要决定重试是否消耗另一个尝试索引。成功计数器会得到不同的策略,而并行任务完成的顺序可能与其被分配的索引不同。

相关文章