main:新增并发控制文档及快速参考指南

更新内容:
- 编写《并发控制》详细文档,说明任务并发限制的配置、使用和最佳实践。
- 完成《并发控制实现总结》文档,记录设计决策和开发细节。
- 添加《并发控制快速参考》文档,提供配置和常见问题的快速解决方案。
This commit is contained in:
2026-02-02 17:15:11 +08:00
parent dff5aed33c
commit 3e1d850954
3 changed files with 510 additions and 0 deletions

View File

@@ -0,0 +1,102 @@
# 并发控制快速参考
## 配置
```bash
# 设置最大并发数(默认 10
export MAX_CONCURRENT_JOBS=20
```
## API
### 查询并发状态
```bash
GET /jobs/concurrency/status
```
**响应:**
```json
{
"max_concurrent": 10, // 最大并发数
"available_slots": 7, // 可用槽位
"running_jobs": 3 // 运行中任务数
}
```
## 代码示例
### 在 JobManager 中使用
```python
# 并发控制自动生效,无需额外代码
job_manager = await get_job_manager()
job_id = await job_manager.create_job(...)
# 任务会自动排队,等待可用槽位
asyncio.create_task(job_manager.execute_job(job_id))
```
### 查询并发状态
```python
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']}")
```
## 监控
### 实时监控
```bash
# 持续监控并发状态
watch -n 1 'curl -s http://localhost:8000/jobs/concurrency/status | jq'
```
### 测试脚本
```bash
# 运行并发控制测试
./scripts/test_concurrency.sh
```
## 推荐配置
| 任务类型 | 推荐并发数 |
|---------|-----------|
| CPU 密集型 | 核心数 × 1.5 |
| I/O 密集型 | 核心数 × 5-10 |
| 混合型 | 核心数 × 2-3 |
## 故障排查
### 任务一直 pending
```bash
# 检查并发状态
curl http://localhost:8000/jobs/concurrency/status
# 如果 available_slots = 0说明所有槽位被占用
# 解决方案:
# 1. 等待当前任务完成
# 2. 增加并发限制
# 3. 优化算法性能
```
### 系统资源耗尽
```bash
# 降低并发限制
export MAX_CONCURRENT_JOBS=5
# 重启服务
./scripts/run_dev.sh
```
## 相关文档
- [详细文档](./concurrency-control.md)
- [实现总结](./concurrency-control-changelog.md)