相关疑难解决方法(0)

docker-compose 和优雅的芹菜关闭

我一直想知道并寻找解决方案,但我没有找到任何解决方案。

我在用 docker-compose 构建的容器中运行 Celery。我的容器配置如下:

celery:
  build: .
  container_name: cl01
  env_file: ./config/variables.env
  entrypoint:
    - /celery-entrypoint.sh
  volumes:
    - ./django:/django
  depends_on:
    - web
    - db
    - redis
  stop_grace_period: 1m
Run Code Online (Sandbox Code Playgroud)

我的入口点脚本如下所示:

#!/bin/sh
# Wait for django
sleep 10
su -m dockeruser -c "celery -A myapp worker -l INFO"
Run Code Online (Sandbox Code Playgroud)

现在,如果我运行docker-compose stop,我希望有一个温暖的(优雅的)关机,给 Celery 提供的 1 分钟 ( stop_grace_period) 来完成已经开始的任务。然而docker-compose stop似乎直接杀死了芹菜。Celery 还应该记录它被要求正常关闭,但除了突然停止我的任务日志之外,我什么也没看到。

我做错了什么或者我需要改变什么才能让 Celery 优雅地关闭?

编辑:下面关于提供--timeout参数的建议答案docker-compose stop并不能解决我的问题。

django celery docker docker-compose

5
推荐指数
2
解决办法
1978
查看次数

标签 统计

celery ×1

django ×1

docker ×1

docker-compose ×1