Skip to content

POST /batch

🗂️ 批量截图端点。

📁 源码:pkg/api/batch.go

Handler

符号源码说明
HandleBatchScreenshotL13POST /batch
ProcessBatchConcurrentL167并发处理

流程

批次执行状态机

下图展示 /batch 请求在并发处理阶段的状态流转:批次整体受服务级限流约束,内部再用信号量控制批次内并发,聚合所有子任务结果后统一返回。

请求体

BatchScreenshotRequesttypes.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

下一步

基于 MIT 许可发布