fix: 添加 redis_url 配置字段,修复 REDIS_URL 环境变量不生效问题 #252

Merged
xiaoxia merged 1 commits from fix/redis-url-config into develop 2026-07-13 15:17:32 +08:00
Owner

问题根因

staging 环境 flag 100% 不生效的根本原因:

  1. WorkerSettings 类里没有 redis_url 字段,导致环境变量 REDIS_URL 完全没被 pydantic 读取
  2. RenderEngineResolver 初始化时 getattr(settings, redis_url, None) 返回 None
  3. fallback 到 broker_url,默认值是 redis://redis:6379/0
  4. staging 的 redis 服务名是 xiaoxia-redis-staging,连接失败
  5. Resolver 降级到 InMemory 实现,flag 永远是默认关闭状态
  6. 所以 percentage=100 也永远返回 legacy 引擎

修复

在 WorkerSettings 中添加 redis_url 字段,让 REDIS_URL 环境变量正确映射。

影响范围

  • 灰度发布 flag 不生效的 P0 阻断
  • 只有一行代码变更,无风险
## 问题根因 staging 环境 flag 100% 不生效的根本原因: 1. WorkerSettings 类里没有 redis_url 字段,导致环境变量 REDIS_URL 完全没被 pydantic 读取 2. RenderEngineResolver 初始化时 getattr(settings, redis_url, None) 返回 None 3. fallback 到 broker_url,默认值是 redis://redis:6379/0 4. staging 的 redis 服务名是 xiaoxia-redis-staging,连接失败 5. Resolver 降级到 InMemory 实现,flag 永远是默认关闭状态 6. 所以 percentage=100 也永远返回 legacy 引擎 ## 修复 在 WorkerSettings 中添加 redis_url 字段,让 REDIS_URL 环境变量正确映射。 ## 影响范围 - 灰度发布 flag 不生效的 P0 阻断 - 只有一行代码变更,无风险
xiaoxia added 1 commit 2026-07-13 14:45:00 +08:00
fix: add redis_url field to WorkerSettings to pick up REDIS_URL env var
CI/CD Pipeline / Validate Code Quality And Tests (pull_request) Successful in 39s
CI/CD Pipeline / Unit Tests (pull_request) Successful in 1m9s
CI/CD Pipeline / Integration Tests (pull_request) Successful in 1m33s
CI/CD Pipeline / Frontend Lint (pull_request) Successful in 2m17s
CI/CD Pipeline / Build Production Runtime Images (pull_request) Has been skipped
CI/CD Pipeline / Build & Push Staging (Watchtower auto-deploy) (pull_request) Has been skipped
CI/CD Pipeline / Staging E2E Tests (pull_request) Has been skipped
CI/CD Pipeline / Deploy Production (pull_request) Has been skipped
CI/CD Pipeline / Staging API Integration Tests (pull_request) Has been skipped
CI/CD Pipeline / Production Browser E2E (pull_request) Has been skipped
2fbdb8f992
Root cause of flag not working in staging:
- WorkerSettings had no 'redis_url' field, so REDIS_URL env var was ignored
- RenderEngineResolver fallback to broker_url (default redis://redis:6379/0)
- Staging redis hostname is xiaoxia-redis-staging, so connection failed
- Resolver degraded to in-memory store, flag always defaulted to disabled (legacy)

Fix: add redis_url field so REDIS_URL env var is properly mapped
xiaoxia merged commit 73375c6639 into develop 2026-07-13 15:17:32 +08:00
Sign in to join this conversation.