我猜我的 docker 容器设置有问题。
因为每次我从 django 运行任务时,我都会在 docker 容器输出中看到ps aux
创建了新进程python mange.py rqworker mail
而不是使用现有的。
请参阅截屏视频:https://i.stack.imgur.com/97LKx.jpg https://i.stack.imgur.com/97LKx.jpg
执行的进程command
在我的 docker compose for rq Worker 容器中,它看起来像这样。
#!/bin/sh -e
wait-for-it
for KEY in $(redis-cli -h $REDIS_HOST -n 2 KEYS "rq:worker*"); do
redis-cli -h $REDIS_HOST -n 2 DEL $KEY
done
if [ "$ENVIRONMENT" = "development" ]; then
python manage.py rqworkers --worker-class rq.SimpleWorker --autoreload;
else
python manage.py rqworkers --worker-class rq.SimpleWorker --workers 4;
fi
我是 docker 的新手,有点想知道这是在没有去恶魔化的情况下开始的……但这是否是一种 docker 的做事方式,对吧?
这就是我使用 docker-compose 所做的事情:
version: '3'
services:
web:
build: .
image: mysite
[...]
rqworker:
image: mysite
command: python manage.py rqworker
[...]
rqworker_high:
image: mysite
command: python manage.py rqworker high
[...]
然后开始:
$ docker-compose up --scale rqworker_high=4
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)