From fecc786d4af9d386cff385e52e963ef4c6468b8e Mon Sep 17 00:00:00 2001 From: xiaoxia Date: Fri, 10 Jul 2026 22:07:41 +0800 Subject: [PATCH] =?UTF-8?q?feat(worker):=20=E6=94=AF=E6=8C=81=20WORKER=5FC?= =?UTF-8?q?ONCURRENCY=20=E7=8E=AF=E5=A2=83=E5=8F=98=E9=87=8F=E6=8E=A7?= =?UTF-8?q?=E5=88=B6=20Celery=20=E5=B9=B6=E5=8F=91=E6=95=B0=20(#208)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- infra/docker/entrypoint-worker.sh | 13 +++++++++++++ infra/docker/worker.Dockerfile | 6 +++++- 2 files changed, 18 insertions(+), 1 deletion(-) create mode 100644 infra/docker/entrypoint-worker.sh diff --git a/infra/docker/entrypoint-worker.sh b/infra/docker/entrypoint-worker.sh new file mode 100644 index 000000000..d03eb4bd1 --- /dev/null +++ b/infra/docker/entrypoint-worker.sh @@ -0,0 +1,13 @@ +#!/bin/bash +# Worker 启动脚本 — 支持 WORKER_CONCURRENCY 环境变量 +# 未设置时默认 2(保持向后兼容) + +set -e + +CONCURRENCY="${WORKER_CONCURRENCY:-2}" + +exec celery \ + -A worker_app.celery_app \ + worker \ + --loglevel=info \ + "--concurrency=${CONCURRENCY}" diff --git a/infra/docker/worker.Dockerfile b/infra/docker/worker.Dockerfile index 8c8a8250e..b11078b8f 100755 --- a/infra/docker/worker.Dockerfile +++ b/infra/docker/worker.Dockerfile @@ -51,6 +51,10 @@ COPY packages/ /app/packages/ COPY alembic.ini /app/alembic.ini COPY migrations/ /app/migrations/ +# 复制 Worker 启动脚本(支持 WORKER_CONCURRENCY 环境变量) +COPY infra/docker/entrypoint-worker.sh /usr/local/bin/entrypoint-worker.sh +RUN chmod +x /usr/local/bin/entrypoint-worker.sh + # 设置 Python 路径 ENV PATH="/opt/venv/bin:$PATH" ENV PYTHONPATH=/app @@ -65,4 +69,4 @@ USER celery # Worker 入口点 WORKDIR /app/apps/worker -CMD ["celery", "-A", "worker_app.celery_app", "worker", "--loglevel=info", "--concurrency=2"] +CMD ["/usr/local/bin/entrypoint-worker.sh"]