戏子 (@GptKing) 在 分享一个golang chromedp单例开发的踩坑记录 中发帖
直接上代码,坑点在注释中已经详细标注出来了,chromedp基于ws协议通过底层的chrome自动化数据协议控制浏览器,实例的生命周期往往在复杂业务中被忽略,导致浏览器进程闪退,并且种因为生命周期结束回收资源造成的进程退出是完全没有日志可追查的,直到我重新搓了一份极简的demo做参照,才爬出来,爬了一个下午 😭
package main
import (
"bufio"
"context"
"fmt"
"log"
"math"
"os"
"strings"
"sync"
"time"
"github.com/chromedp/cdproto/storage"
"github.com/chromedp/chromedp"
)
var (
browserOnce sync.Once
browserCtx context.Context
br...