Skip to content

DriverPool

🏊 `pkg/runner/pool.go` — 进程内浏览器池。

DriverPool 管理一批 Driver,让并发任务复用浏览器实例,避免反复启动 Chrome。

📁 源码:pkg/runner/pool.go

核心类型

类型源码说明
PoolStatsL18池统计(活跃/空闲/等待/累计)
DriverPoolL43池主体
NewDriverPoolL87构造池
go
func NewDriverPool(opts *Options, maxConcurrent int) (*DriverPool, error)

借还模型

状态流转

  Driver 在池中的状态:

  [Idle 空闲] ──Acquire──► [Busy 借出] ──Release──► [Idle]
       │                                              │
       │ 超过 idle-timeout                              │
       ▼                                              │
  [Closed 关闭]                                    复用

PoolStats 字段

字段说明
Active当前借出执行中
Idle空闲可复用
Waiting排队等待借取
Total累计创建数

用于监控池负载,SharedPoolStats()/GET /stats 返回。

何时用

  • 批量并发截图(scan file --threads N
  • 进程内多任务复用

跨进程复用见 provider。共享单例见 共享池单例

与 PoolDriver/Runner 的层次

下一步

基于 MIT 许可发布