问题域/PD-301

异步并发限流

Async Concurrency Throttling

异步函数调用的并发限流与超时管理,防止LLM/Embedding API过载

子问题

1.并发上限控制

2.超时管理

3.优先级队列

4.批量处理调度

5.卡死任务检测与 Worker 自动恢复

6.队列容量溢出防护

7.Worker 系统优雅关闭与资源清理

各项目的解法1 solutions

Signals

横向对比

维度LightRAG
并发模型PriorityQueue + Worker 池,非 Semaphore
超时策略三层动态超时:Worker(2×base) → HealthCheck(2×base+15) → User
优先级支持asyncio.PriorityQueue 原生优先级,低值优先
健康检查独立协程 5s 轮询检测卡死任务并自动恢复 Worker
差异化配置LLM(4并发/180s) vs Embedding(8并发/30s) 独立参数
批量控制文档插入用独立 Semaphore(默认2),与 API 限流双层隔离

最佳实践

1.装饰器模式透明限流

2.区分LLM和Embedding的超时阈值

3.基于 base_timeout 动态推导多层超时值避免硬编码

4.execution_start_time 与 start_time 分离防止误杀排队任务

5.weakref.WeakSet 追踪 Future 防止内存泄漏