异步并发控制
Async Concurrency Control
管理大量异步LLM/Embedding调用的并发度、优先级和超时
子问题
1.优先级调度策略
2.多层超时保护
3.stuck任务检测与恢复
4.Worker 异常退出后的自动恢复与补充
5.协作式任务取消(cancellation_requested标志)
6.入队超时控制(queue_timeout防止队列满阻塞)
各项目的解法1 solutions
Signals
横向对比
| 维度 | LightRAG |
|---|---|
| 优先级调度 | PriorityQueue + (priority, counter) 元组实现优先级 FIFO |
| 多层超时保护 | 四层级联:LLM Provider → Worker(2x) → HealthCheck(2x+15) → User |
| stuck任务检测 | 后台 health check 每 5 秒扫描 execution_start_time 超时任务 |
| 并发模型 | 装饰器工厂 + Worker 池 + PriorityQueue,双队列独立运行 |
| 优雅关闭 | shutdown_event + futures cancel + queue drain + workers cancel 四步关闭 |
| Worker恢复 | health check 自动检测死亡 worker 并补充新协程 |
最佳实践
1.基于PriorityQueue实现优先级并发控制,配合多层超时保护防止资源泄漏
2.用装饰器工厂封装并发控制,对调用方零侵入
3.从基础超时自动推导多层超时值,避免手动配置不一致
4.用WeakSet追踪活跃Future防止内存泄漏