【发布时间】:2017-09-02 17:35:52
【问题描述】:
我一直在想并寻找解决方案,但我没有找到任何解决方案。
我在使用 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
我的入口点脚本如下所示:
#!/bin/sh
# Wait for django
sleep 10
su -m dockeruser -c "celery -A myapp worker -l INFO"
现在,如果我运行 docker-compose stop,我想要一个温暖(优雅)的关机,给 Celery 提供的 1 分钟 (stop_grace_period) 来完成已经开始的任务。然而docker-compose stop 似乎直接杀死了 Celery。 Celery 还应该记录它被要求正常关闭,但除了任务日志的突然停止之外,我什么也没看到。
我做错了什么或者我需要改变什么才能让 Celery 优雅地关闭?
编辑:
下面关于向docker-compose stop 提供--timeout 参数的建议答案不能解决我的问题。
【问题讨论】:
标签: django docker celery docker-compose