浅浅升级一下
All checks were successful
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 8m8s

This commit is contained in:
2026-05-06 14:41:14 +08:00
parent b0bd37ec12
commit 3a2e3f2571
16 changed files with 1490 additions and 106 deletions

View File

@@ -0,0 +1,45 @@
## MODIFIED Requirements
### Requirement: 配置嵌入
系统 SHALL 使用 Go 的 `go:embed` 指令将默认配置文件嵌入二进制文件。
嵌入文件位置:`pkg/config/defaults/config.yaml`
#### Scenario: 加载嵌入配置
- **WHEN** 调用 `config.Load()`
- **THEN** 系统从嵌入的 `defaults/config.yaml` 读取默认配置
- **AND** 无需外部配置文件即可启动
#### Scenario: 嵌入配置包含完整结构
- **WHEN** 读取嵌入配置
- **THEN** 配置包含所有配置节server、database、redis、storage、logging、queue、jwt、middleware、worker
## ADDED Requirements
### Requirement: Worker 运行配置
系统 SHALL 在嵌入默认配置中提供 `worker` 配置节,并支持通过 `JUNHONG_WORKER_ROLE``JUNHONG_WORKER_INSTANCE_NAME` 环境变量覆盖。
默认配置:
- `worker.role`: `all`
- `worker.instance_name`: 空字符串
#### Scenario: 默认 Worker 角色
- **WHEN** 未设置 `JUNHONG_WORKER_ROLE`
- **THEN** `config.Load()` 返回的 `Config.Worker.Role``all`
#### Scenario: 环境变量覆盖 Worker 角色
- **WHEN** 设置环境变量 `JUNHONG_WORKER_ROLE=consumer`
- **THEN** `config.Load()` 返回的 `Config.Worker.Role``consumer`
#### Scenario: 环境变量覆盖实例名称
- **WHEN** 设置环境变量 `JUNHONG_WORKER_INSTANCE_NAME=worker-consumer-1`
- **THEN** `config.Load()` 返回的 `Config.Worker.InstanceName``worker-consumer-1`
#### Scenario: Worker 角色参与配置校验
- **WHEN** 设置环境变量 `JUNHONG_WORKER_ROLE=invalid`
- **THEN** `config.Load()` 返回错误
- **AND** 错误信息明确指出 `worker.role` 只允许 `all``leader``consumer`