POST /batch
🗂️ 批量截图端点。
📁 源码:
pkg/api/batch.go
Handler
| 符号 | 源码 | 说明 |
|---|---|---|
HandleBatchScreenshot | L13 | POST /batch |
ProcessBatchConcurrent | L167 | 并发处理 |
流程
批次执行状态机
下图展示 /batch 请求在并发处理阶段的状态流转:批次整体受服务级限流约束,内部再用信号量控制批次内并发,聚合所有子任务结果后统一返回。
请求体
BatchScreenshotRequest(types.go#L113):
json
{
"requests": [
{"url":"https://a.com","fullPage":true},
{"url":"https://b.com"}
],
"concurrency": 5
}响应
返回 []BatchResult,每条含目标、结果、错误(types.go#L191)。
并发
两层并发,别搞混
- 批次内并发:请求体
concurrency字段控制本批次内同时跑几个 - 服务级并发:整个
/batch请求受ConcurrencyLimiter约束,仍占--max-concurrent名额
ProcessBatchConcurrent 用 goroutine + 信号量控制批次内并发,受服务级 ConcurrencyLimiter 约束。
示例
bash
curl -X POST http://localhost:8080/batch \
-H "Authorization: Bearer $KEY" \
-H "Content-Type: application/json" \
-d @batch.json