dce9ce2a5a5e43ad6e390decf12127511e2ffdf4
- 逐条网络日志(请求完成 / 接口返回异常 / 响应刷新CSRF已同步)从 info/warn 降为 debug: 实测一次 6 账号的模拟抢购里 233 条日志有 174 条(74%)属于这类;真实抢购会产生几千条, 把界面仅 800 条的内存日志冲掉,反而看不到关键信息。HTTP/解析/传输层错误仍为 error 级 - 新增按接口聚合的网络统计,抢购任务结束时输出一行,替代逐条刷屏: "接口统计: 锁定兑换商品 ×341 失败341 平均=95ms 最慢=312ms 最后错误=活动火爆,请稍后再试" - 日志文件开头新增表头:实例名、数据目录、双时间格式说明(本地时间 + D 斗鱼估算时间)、 并说明"校准完成前偏移为 0,只显示本地时间"。双时间一直存在却没有任何地方解释过, 多实例日志复制或汇总后也分不清来源 - 界面日志面板:显示日志级别并按级别着色(此前级别只存在于 CSS class,复制出去就丢); 新增"复制"按钮,按与日志文件一致的单行格式导出(此前直接复制会变成 5 行一条、 1204 行里其实只有 233 条日志) - 设置页"日志显示等级"补充说明:Info 起只显示关键日志,需要逐请求细节时切到 Debug - 新增测试:TestRequestStatsAggregatesByLabel、TestLogFileHeaderDocumentsFormat、 TestRunNowLogsAggregateInsteadOfPerRequest(断言必须有聚合行、且不得出现逐条请求日志)
斗鱼抢购系统
Wails v2 桌面应用。
开发运行
wails dev
构建
# 构建当前平台
wails build
# 交叉编译
GOOS=windows GOARCH=amd64 wails build
GOOS=darwin GOARCH=amd64 wails build
GOOS=darwin GOARCH=arm64 wails build
GOOS=linux GOARCH=amd64 wails build
构建产物在 build/bin/ 目录。
项目结构
├── main.go # Wails 入口
├── app.go # App 结构体 + 前端可调用方法
├── frontend/
│ └── index.html # 前端页面
├── internal/
│ ├── client/ # 斗鱼接口客户端
│ ├── seckill/ # 抢购调度器
│ ├── logger/ # 日志系统
│ ├── trace/ # HTTP 请求追踪
│ ├── image/ # 成功图片生成
│ ├── config/ # 配置管理
│ ├── types/ # 类型定义
│ ├── constants/ # 常量
│ └── utils/ # 工具函数
├── data/
│ └── user.txt # 账号文件
└── build/ # 构建输出(gitignore)
环境变量
| 变量 | 说明 | 默认值 |
|---|---|---|
DOUYU_CONFIG |
配置文件路径 | config.json |
DOUYU_USERS |
账号文件路径 | data/user.txt |
DOUYU_LOG_DIR |
日志目录 | logs |
DOUYU_SUCCESS_DIR |
成功图片目录 | success_images |
DOUYU_FONT |
自定义字体路径 | 自动检测系统字体 |
DOUYU_TRACE |
启用 HTTP 追踪 | 关闭 |
DOUYU_TRACE_MAX_BODY |
trace 正文最大字节数 | 无限制 |
Languages
Go
66%
Vue
23%
TypeScript
6.1%
CSS
3.9%
Shell
0.9%