我猜我的Docker容器设置不正确。
因为每次从django运行任务时,我都会在ps aux
的docker容器输出中看到,有一个python mange.py rqworker mail
创建的新进程,而不是使用现有进程。
请参见截屏视频:https://imgur.com/a/HxUjzJ5
在我的docker compose for rq worker容器中从command
执行的过程如下。
#!/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的新手,我想知道这是在不进行氨化的情况下启动的……但这是一种dockerish的工作方式,对吗?
答案 0 :(得分:0)
这就是我用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