2
我一直在想,为此寻找解决方案,我没有找到任何。docker-compose和优雅的芹菜关机
我在用docker-compose构建的容器中运行芹菜。我的容器配置是这样的:
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
,我想有一个温暖(优美)关机,给芹菜提供1分钟(stop_grace_period
)完成已开始的任务。但docker-compose stop
似乎直接杀死芹菜。芹菜还应该记录它被要求优雅地关闭,但我没有看到任何东西,只是突然停止我的任务日志。
我在做什么错,或者我需要改变什么才能让Celery优雅地关闭?
编辑: 建议的答案在下面提供的--timeout
参数docker-compose stop
不能解决我的问题。
似乎没有工作。有趣的是,芹菜,芹菜Beat和花是几秒钟内关闭的第一件事情。 nginx,django,redis等都在60秒后花时间关闭。 还有一个问题:我想这正是docker-compose.yml中的'stop_grace_period'参数的意思吗?所以你不需要在运行bash命令时设置超时。 – JanBrinker
嗯,是的,但你只为芹菜服务设置它,当设置超时运行时,'docker-compose stop'应该适用于所有容器。我不知道为什么它以这种方式关闭。 –