diff --git a/docker-compose.moldinsight.yml b/docker-compose.moldinsight.yml index b0460be..7a4cc7d 100644 --- a/docker-compose.moldinsight.yml +++ b/docker-compose.moldinsight.yml @@ -83,7 +83,7 @@ services: dockerfile: deploy/Dockerfile.moldinsight image: gemold-backend:latest container_name: gemold_celery - command: ["sh", "-c", "exec celery -A celery_app worker --workdir=/app/src --concurrency=${CELERY_CONCURRENCY:-2} --max-tasks-per-child=${CELERY_MAX_TASKS_PER_CHILD:-50} --loglevel=info"] + command: ["sh", "-c", "cd /app/src && exec celery -A celery_app worker --concurrency=${CELERY_CONCURRENCY:-2} --max-tasks-per-child=${CELERY_MAX_TASKS_PER_CHILD:-50} --loglevel=info"] environment: <<: *base_env # Celery/OCC 吞吐调优(OCC_THROUGHPUT 方案 A) diff --git a/docker-compose.yml b/docker-compose.yml index 0148c8a..df9cc1a 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -104,7 +104,10 @@ services: dockerfile: deploy/Dockerfile.moldinsight image: gemold-backend:latest container_name: gemold_celery - command: ["sh", "-c", "exec celery -A celery_app worker --workdir=/app/src --concurrency=${CELERY_CONCURRENCY:-2} --max-tasks-per-child=${CELERY_MAX_TASKS_PER_CHILD:-50} --loglevel=info"] + # cd /app/src 是必须的:celery_app / celery_tasks 是 src/ 的子模块, + # 而其 import 用的是裸模块名(celery_app.py 内 include=["celery_tasks"]), + # 所以 worker 必须从 src/ 目录启动;不依赖 celery 版本是否支持 --workdir + command: ["sh", "-c", "cd /app/src && exec celery -A celery_app worker --concurrency=${CELERY_CONCURRENCY:-2} --max-tasks-per-child=${CELERY_MAX_TASKS_PER_CHILD:-50} --loglevel=info"] environment: <<: *base_env # Celery/OCC 吞吐调优(OCC_THROUGHPUT 方案 A)