首页/AI/提示词工程速查/并发控制与排队

并发控制与排队

控制同时在途请求数:信号量限制并发,任务排队并设公平策略;高峰期宁可排队也不打垮上游,排队状态对用户可见。

提示词工程速查AI更新于 2026-10-13

并发控制与排队

并发控制的核心是限制同时在途的请求数量:用信号量把并发压在上游能承受的范围内,超出的任务进队列等待,队列按公平策略分配且设最长等待时间。高峰期宁可让请求排队,也不要用瞬时爆发把上游打垮,因为上游挂掉时所有请求都会失败。

基本信息

容量按上游限额设定在途上限,并留出余量
队列与公平通常 FIFO,叠加租户配额防止单租户占满
排队超时超过等待上限即移出队列并返回繁忙提示
背压队列长度超阈值时暂停承接非关键任务
观测排队长度、等待时长 P95、超时率、在途数

典型使用场景

  • 对接有速率上限的上游:并发数贴近限额但不越界
  • 多租户平台:单租户并发设上限,保证整体公平
  • 批量任务与实时请求共存:实时请求优先,批量任务在队列尾部
  • 高峰保护:队列过长时先停非关键增强功能
  • 容量评估:用等待时长 P95 判断是否需要扩容或调高并发

并发控制示例

并发控制示例
semaphore = 20          # 在途上限,按上游容量定并留余量
queue: FIFO + 租户配额   # 单租户并发不超过 5
排队超时: 30s 后返回繁忙提示,不让用户无限等待
背压: 排队长度超过 200 时暂停承接非关键任务

超时与取消语义:
  排队超时 → 移出队列并返回提示
  在途超时 → 按幂等键查询实际结果,不盲目重发
  取消动作 → 先停新任务,再等在途任务自然结束

参数与取值依据

参数取值依据调整信号
在途上限上游限流值与实测容量上游 429 增多则下调
单租户并发服务等级与租户数量某租户占用过高则收紧
排队超时用户可接受等待时间超时率升高则评估扩容
背压阈值队列内存与下游处理速度积压持续则提前触发
并发上限与上游限流要一起设计:本地并发 20 而上游每秒只放 5 个请求,多出来的部分只会变成 429。

易错点

  • 并发上限拍脑袋设置,与上游限流互相打架,大量请求变成限流失败
  • 排队无超时,用户无限等待且任务持续积压
  • 取消动作只停新任务不处理在途任务,存储与配额一直被占着
  • 队列无公平策略,单租户的批量任务把实时请求挤到队尾

数据来源与参考

  • 信号量(semaphore)并发模式;背压(backpressure)概念(Reactive Streams)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌