main:新增并发控制文档及快速参考指南
更新内容: - 编写《并发控制》详细文档,说明任务并发限制的配置、使用和最佳实践。 - 完成《并发控制实现总结》文档,记录设计决策和开发细节。 - 添加《并发控制快速参考》文档,提供配置和常见问题的快速解决方案。
This commit is contained in:
102
docs/concurrency-control-quickref.md
Normal file
102
docs/concurrency-control-quickref.md
Normal 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)
|
||||
Reference in New Issue
Block a user