Skip to content

并发控制:Promise 限流器如何维持吞吐与顺序

主题边界

  • 并发控制题要同时满足最大并发数、结果收集、错误传播和尾部任务接续调度。
  • 本质上是一个任务队列和运行池问题。

机制与流程

  • 启动阶段先拉起不超过 limit 个任务,任一任务完成后再从队列取下一个补位。
  • 实现中通常要维护当前运行数、下一个任务索引、结果数组和整体完成 Promise。
  • 错误策略需要事先定义:是遇错即停,还是收集全部结果后统一返回。

关键差异

  • 并发限制解决的是同时执行上限,不等于重试、超时或取消。
  • 顺序输出与顺序执行不是同一件事,可以并发执行但按原始索引收集结果。

边界条件

  • 如果任务函数在调用时就立即副作用执行,而不是惰性函数,限流器会失效。
  • 没有取消与超时能力的限流器,在真实接口治理中能力仍然不完整。

工程落点

  • 文件上传、图片预取、批量接口和爬取任务都需要并发窗口控制,防止打爆客户端或服务端。
  • 好的实现要把调度逻辑、错误策略和资源释放区分开。

相关主题