修复Redis MISCONF导致Celery写入失败
Co-authored-by: multica-agent <github@multica.ai>
This commit is contained in:
@@ -59,6 +59,10 @@ MINIO_IMAGE=minio/minio:latest
|
||||
MINIO_MC_IMAGE=minio/mc:latest
|
||||
REDIS_IMAGE=docker.m.daocloud.io/library/redis:7-alpine
|
||||
REDIS_PORT=6379
|
||||
# Redis 持久化策略:
|
||||
# - 启用 AOF(appendonly yes)
|
||||
# - 关闭 RDB 快照(save "")
|
||||
# - 即使 RDB 失败也不阻断写请求(stop-writes-on-bgsave-error no)
|
||||
MINIO_API_PORT=9000
|
||||
MINIO_CONSOLE_PORT=9001
|
||||
PIP_INDEX_URL=https://pypi.org/simple
|
||||
|
||||
@@ -1078,3 +1078,11 @@
|
||||
- XHR 上传沿用 `withCredentials + Authorization: Bearer <token>`;
|
||||
- 401 时触发一次 `refreshAccessToken` 并重试上传,保持与现有鉴权刷新机制一致。
|
||||
- AuthContext 对外新增 `getAccessToken()`,用于在异步重试场景读取最新 token,避免闭包持有旧值。
|
||||
|
||||
## Redis 持久化容错口径(2026-05-03)
|
||||
|
||||
- `deploy/dev-deploy/compose.yml` 与 `deploy/pro-deploy/compose.yml` 的 `redis` 统一采用:
|
||||
- `appendonly yes`
|
||||
- `save ""`
|
||||
- `stop-writes-on-bgsave-error no`
|
||||
- 目的:规避 RDB 快照失败触发 `MISCONF` 后 Redis 全局拒写,保障 Celery broker/result backend 可持续写入。
|
||||
|
||||
@@ -20,7 +20,14 @@ services:
|
||||
- "${REDIS_PORT}:6379"
|
||||
volumes:
|
||||
- ./data/redis:/data
|
||||
command: redis-server --appendonly yes
|
||||
command:
|
||||
- redis-server
|
||||
- --appendonly
|
||||
- "yes"
|
||||
- --save
|
||||
- ""
|
||||
- --stop-writes-on-bgsave-error
|
||||
- "no"
|
||||
restart: unless-stopped
|
||||
|
||||
minio:
|
||||
|
||||
@@ -16,7 +16,14 @@ services:
|
||||
redis:
|
||||
image: ${REDIS_IMAGE}
|
||||
container_name: ${COMPOSE_PROJECT_NAME}-redis
|
||||
command: redis-server --appendonly yes
|
||||
command:
|
||||
- redis-server
|
||||
- --appendonly
|
||||
- "yes"
|
||||
- --save
|
||||
- ""
|
||||
- --stop-writes-on-bgsave-error
|
||||
- "no"
|
||||
ports:
|
||||
- "${REDIS_PORT}:6379"
|
||||
volumes:
|
||||
|
||||
+24
-1
@@ -146,7 +146,6 @@
|
||||
- 风险与影响:
|
||||
- 删除数据集会同时删除其关联的回填任务记录(仅记录,不会回滚已写入杆塔的高程值)。
|
||||
- 若数据集存在运行中任务,接口会拒绝删除并提示先等待任务结束。
|
||||
|
||||
## Work Log - 高程数据管理支持批量导入(2026-05-03)
|
||||
|
||||
- 背景:
|
||||
@@ -217,3 +216,27 @@
|
||||
- 风险与影响:
|
||||
- 影响范围:仅 Flower 代理鉴权配置注入,不改业务代码与数据。
|
||||
- 若部署环境仍存在多层 env 覆盖(例如 `.images.env`),需确保最终生效值在 `api` 与 `flower` 一致。
|
||||
|
||||
## Work Log - 修复 Redis MISCONF 导致 Celery 写入失败(2026-05-03)
|
||||
|
||||
- 背景:
|
||||
- Issue `FL-181` 报错:`redis.exceptions.ResponseError: MISCONF Redis is configured to save RDB snapshots, but it's currently unable to persist to disk`。
|
||||
- 该错误会触发 Redis 写保护,导致 Celery 控制命令与任务相关写入失败。
|
||||
|
||||
- 根因:
|
||||
- 部署配置使用 `redis-server --appendonly yes`,默认仍启用 RDB 快照。
|
||||
- 当宿主磁盘/权限导致 RDB 持久化失败时,Redis 默认 `stop-writes-on-bgsave-error=yes` 会拒绝写请求,连带 Celery 报 `kombu.exceptions.OperationalError`。
|
||||
|
||||
- 本次改动(最小闭环):
|
||||
- 文件:`deploy/dev-deploy/compose.yml`
|
||||
- 文件:`deploy/pro-deploy/compose.yml`
|
||||
- 将 Redis 启动参数调整为:
|
||||
- `appendonly yes`(保留 AOF 持久化)
|
||||
- `save ""`(关闭 RDB 快照)
|
||||
- `stop-writes-on-bgsave-error no`(避免快照异常触发全局写阻断)
|
||||
- 文件:`.env.example`
|
||||
- 补充 Redis 持久化策略说明,明确上述运行口径。
|
||||
|
||||
- 风险与影响:
|
||||
- 影响面:仅 Redis 容器启动参数与部署说明。
|
||||
- 风险:关闭 RDB 后,Redis 数据恢复主要依赖 AOF;当前场景下可避免 Celery 因 RDB 异常整体不可写。
|
||||
|
||||
Reference in New Issue
Block a user