Skip to content

pkg/provider

🔌 跨进程共享 Chrome/CDP Provider。

pkg/provider 实现常驻 Chrome 端点,供多进程 worker 复用。

核心类型

ProviderOptions

字段说明
ChromePathChrome 路径
Headless无头模式
WindowWidth / WindowHeight窗口尺寸
UserAgentUA
Proxy代理
IgnoreCertErrors忽略证书
Provider 服务配置端口/并发/空闲超时等

DefaultProviderOptions() 给默认值。

Provider

go
func NewProvider(opts ProviderOptions) *Provider
func WaitForSignal(p *Provider)
func DiscoverChrome(host string, ports []int) (string, error)

启动

bash
snir provider --port 9223 --max-concurrent 20

各 worker 用 --wss 连接其暴露的 Chrome。见 provider 命令

与 DriverPool 的区别

  • DriverPool:进程内多任务复用
  • Provider:跨进程共享同一 Chrome 端点

两者的作用域对比:

worker 进程接入 Provider 共享 Chrome 的时序:

💡 何时用 Provider

单进程批量用 DriverPool(SDK Shared* 自动管理);多进程/多机 worker 共用一个 Chrome 实例时启动 snir provider,各 worker 以 --wss 接入,省去每进程各起一份 Chrome 的开销。

下一步

基于 MIT 许可发布