fix: 删除 worker entrypoint 中无效的 -W 参数,修复 worker 启动崩溃 #1337

Merged
xiaoxia merged 1 commits from fix/worker-entrypoint-w-flag into develop 2026-08-10 19:10:21 +08:00
Owner

问题

Worker 容器状态为 Restarting,日志显示 Error: No such option '-W'

根因

PR #1333 在 entrypoint-worker.sh 末尾误加了 -W 参数,Celery 5.4.0 不支持此选项。

修复

删除 -W,恢复正确的 celery worker 启动命令。

## 问题 Worker 容器状态为 Restarting,日志显示 `Error: No such option '-W'`。 ## 根因 PR #1333 在 entrypoint-worker.sh 末尾误加了 `-W` 参数,Celery 5.4.0 不支持此选项。 ## 修复 删除 `-W`,恢复正确的 celery worker 启动命令。

🚀 预览环境已部署

项目 详情
PR号 #1337
预览链接 https://pr-1337.preview.xiaoxiajianji.com
API环境 staging

💡 预览环境使用 staging API 数据,请勿在预览环境中操作重要数据。

🔄 每次提交新代码后预览环境会自动更新。

🗑️ PR 关闭或合并后,预览环境会自动清理。

🚀 **预览环境已部署** | 项目 | 详情 | |------|------| | PR号 | #1337 | | 预览链接 | [https://pr-1337.preview.xiaoxiajianji.com](https://pr-1337.preview.xiaoxiajianji.com) | | API环境 | staging | > 💡 预览环境使用 staging API 数据,请勿在预览环境中操作重要数据。 > > 🔄 每次提交新代码后预览环境会自动更新。 > > 🗑️ PR 关闭或合并后,预览环境会自动清理。
xiaoxia added 1 commit 2026-08-10 19:01:33 +08:00
fix: 删除 worker entrypoint 中无效的 -W 参数,修复 worker 启动崩溃
CI/CD Pipeline / Build Staging API Image (pull_request) Has been skipped
CI/CD Pipeline / Build Staging Web Image (pull_request) Has been skipped
CI/CD Pipeline / Build Staging Worker Image (pull_request) Has been skipped
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (pull_request) Has been skipped
CI/CD Pipeline / Staging E2E Tests (pull_request) Has been skipped
CI/CD Pipeline / Staging API Integration Tests (pull_request) Has been skipped
CI/CD Pipeline / ACR Image Cleanup (pull_request) Has been skipped
CI/CD Pipeline / Check if frontend-only change (pull_request) Successful in 42s
CI/CD Pipeline / Frontend Unit Tests (pull_request) Has been skipped
CI/CD Pipeline / Frontend Lint (pull_request) Has been skipped
CI/CD Pipeline / PR Build Web Image (pull_request) Has been skipped
Preview Deploy / Deploy Preview Environment (pull_request) Successful in 1m10s
CI/CD Pipeline / Validate - Migration (alembic) (pull_request) Successful in 1m12s
CI/CD Pipeline / Validate - Type Check (mypy) (pull_request) Successful in 1m24s
AI Code Review / AI Code Review (pull_request) Successful in 1m26s
PR Automation / Auto Merge on CI Green + Approved (pull_request) Successful in 1m44s
PR Automation / Auto Approve on CI Green (pull_request) Successful in 3m13s
CI/CD Pipeline / PR Build API Image (pull_request) Successful in 2m44s
CI/CD Pipeline / PR Build Worker Image (pull_request) Successful in 2m44s
CI/CD Pipeline / Validate - Code Quality (pull_request) Successful in 4m9s
CI/CD Pipeline / Integration Tests (pull_request) Successful in 1m44s
CI/CD Pipeline / Unit Tests (pull_request) Successful in 6m57s
CI/CD Pipeline / Build Production API Image (pull_request) Has been skipped
CI/CD Pipeline / Build Production Worker Image (pull_request) Has been skipped
CI/CD Pipeline / Build Production Web Image (pull_request) Has been skipped
CI/CD Pipeline / Canary Release to Production (pull_request) Has been skipped
CI/CD Pipeline / Deploy Production (pull_request) Has been skipped
CI/CD Pipeline / Production Browser E2E (pull_request) Has been skipped
CI/CD Pipeline / CI Gate (pull_request) Successful in 6s
Preview Cleanup / Cleanup Preview Environment (pull_request) Successful in 39s
ACR Cleanup / ACR Image Cleanup (pull_request_target) Successful in 55s
314579581b
Celery 5.4.0 不支持 -W 选项,导致 worker 容器反复重启(Restarting)。
此参数是 PR #1333 误加,删除后恢复正常的 graceful shutdown 行为。
xiaoxia force-pushed fix/worker-entrypoint-w-flag from d01b3d6fb7 to 314579581b 2026-08-10 19:01:33 +08:00 Compare
Collaborator

【阻塞级判定】

  • 是否存在阻塞级问题:否
  • 阻塞级问题数量:0 个

📊 审查概览

  • 整体评价:有建议
  • 建议级问题数量::1 个

🔴 阻塞级问题(必须修复)

💡 改进建议(不阻塞合并)

  1. [infra/docker/entrypoint-worker.sh: 移除 -W 参数] 确认预热参数移除的意图
    • 具体内容:在 Celery 中,-W 参数代表 --warmup,用于在 Worker 启动时预加载任务模块。移除此参数将禁用预热功能。虽然这可以加快容器启动速度,但会导致模块导入错误延迟到任务执行时才暴露,增加了线上排查问题的难度。如果本意是修改执行池(如使用 gevent/eventlet),正确的参数是 -P 而非移除 -W。请确认移除该参数是否符合预期。

良好实践

  • 脚本使用了 exec 来启动 Celery,这确保了 Celery 进程能够替换当前的 shell 进程(PID 1),从而正确接收信号(如 SIGTERM)进行优雅退出,符合 Docker 容器的最佳实践。

🤖 由 AI 代码审查机器人自动生成 | 2026-08-10 11:02:59 | 模型:

### 【阻塞级判定】 - 是否存在阻塞级问题:否 - 阻塞级问题数量:0 个 ### 📊 审查概览 - 整体评价:有建议 - 建议级问题数量::1 个 ### 🔴 阻塞级问题(必须修复) 无 ### 💡 改进建议(不阻塞合并) 1. **[infra/docker/entrypoint-worker.sh: 移除 -W 参数] 确认预热参数移除的意图** - 具体内容:在 Celery 中,`-W` 参数代表 `--warmup`,用于在 Worker 启动时预加载任务模块。移除此参数将禁用预热功能。虽然这可以加快容器启动速度,但会导致模块导入错误延迟到任务执行时才暴露,增加了线上排查问题的难度。如果本意是修改执行池(如使用 gevent/eventlet),正确的参数是 `-P` 而非移除 `-W`。请确认移除该参数是否符合预期。 ### ✅ 良好实践 - 脚本使用了 `exec` 来启动 Celery,这确保了 Celery 进程能够替换当前的 shell 进程(PID 1),从而正确接收信号(如 SIGTERM)进行优雅退出,符合 Docker 容器的最佳实践。 --- <sub>🤖 由 AI 代码审查机器人自动生成 | 2026-08-10 11:02:59 | 模型: </sub> <!-- AI_CODE_REVIEW_AUTO_COMMENT -->
xiaoxia merged commit e95d0c2bca into develop 2026-08-10 19:10:21 +08:00

🗑️ 预览环境已清理

PR #1337 已关闭或合并,对应的预览环境已被清理。

如有需要,可以重新打开 PR 来重新生成预览环境。

🗑️ **预览环境已清理** PR #1337 已关闭或合并,对应的预览环境已被清理。 > 如有需要,可以重新打开 PR 来重新生成预览环境。
Sign in to join this conversation.