Files
FunctionalScaffold/docs/concurrency-control-quickref.md
Roog (顾新培) 3e1d850954 main:新增并发控制文档及快速参考指南
更新内容:
- 编写《并发控制》详细文档,说明任务并发限制的配置、使用和最佳实践。
- 完成《并发控制实现总结》文档,记录设计决策和开发细节。
- 添加《并发控制快速参考》文档,提供配置和常见问题的快速解决方案。
2026-02-03 18:38:08 +08:00

1.8 KiB
Raw Blame History

并发控制快速参考

配置

# 设置最大并发数(默认 10
export MAX_CONCURRENT_JOBS=20

API

查询并发状态

GET /jobs/concurrency/status

响应:

{
  "max_concurrent": 10,      // 最大并发数
  "available_slots": 7,      // 可用槽位
  "running_jobs": 3          // 运行中任务数
}

代码示例

在 JobManager 中使用

# 并发控制自动生效,无需额外代码
job_manager = await get_job_manager()
job_id = await job_manager.create_job(...)

# 任务会自动排队,等待可用槽位
asyncio.create_task(job_manager.execute_job(job_id))

查询并发状态

job_manager = await get_job_manager()
status = job_manager.get_concurrency_status()

print(f"运行中: {status['running_jobs']}/{status['max_concurrent']}")
print(f"可用槽位: {status['available_slots']}")

监控

实时监控

# 持续监控并发状态
watch -n 1 'curl -s http://localhost:8000/jobs/concurrency/status | jq'

测试脚本

# 运行并发控制测试
./scripts/test_concurrency.sh

推荐配置

任务类型 推荐并发数
CPU 密集型 核心数 × 1.5
I/O 密集型 核心数 × 5-10
混合型 核心数 × 2-3

故障排查

任务一直 pending

# 检查并发状态
curl http://localhost:8000/jobs/concurrency/status

# 如果 available_slots = 0说明所有槽位被占用
# 解决方案:
# 1. 等待当前任务完成
# 2. 增加并发限制
# 3. 优化算法性能

系统资源耗尽

# 降低并发限制
export MAX_CONCURRENT_JOBS=5

# 重启服务
./scripts/run_dev.sh

相关文档