J'utilise le superviseur pour gérer mon rq worker
et mon superviseur conf est comme ça
[program:rq-upload]
command=rqworker -H 10.182.63.61 -P /data/CDN_DATA_ANA/log/letvlog --name=10.180.153.80_re_upload_%(process_num)s log_upload_10.180.153.80
directory=/data/CDN_DATA_ANA/log/log
stopsignal=TERM
autorestart=true
autostart = true
startsecs = 5
process_name = rq_upload%(process_num)s
numprocs=2
user = root
redirect_stderr = true
stdout_logfile = /logs/rq-upload.log
Mais quand je redémarre, utilise supervisorctl -c /etc/supervisord.conf update re-upload:*
Il me dit toujours que le nom du travailleur a utilisé
Traceback (most recent call last):
File "/usr/bin/rqworker", line 9, in <module>
load_entry_point('rq==0.3.8', 'console_scripts', 'rqworker')()
File "/usr/lib/python2.6/site-packages/rq/scripts/rqworker.py", line 84, in main
w.work(burst=args.burst)
File "/usr/lib/python2.6/site-packages/rq/worker.py", line 294, in work
self.register_birth()
File "/usr/lib/python2.6/site-packages/rq/worker.py", line 197, in register_birth
'already.' % (self.name,))
ValueError: There exists an active worker named '10.181.153.149_rq_13' already.
Je ferme les anciens problèmes. Si ce problème persiste et nécessite mon attention, je vous demande de bien vouloir le rouvrir ou de déposer un nouveau problème. Merci.
J'ai le même problème, lorsque j'arrête rqworker
partir de la commande d'exécution docker-compose par Ctrl+c
et que je veux le redémarrer.
worker_1 | File "/usr/local/lib/python2.7/dist-packages/click/core.py", line 889, in invoke
worker_1 | return ctx.invoke(self.callback, **ctx.params)
worker_1 | File "/usr/local/lib/python2.7/dist-packages/click/core.py", line 534, in invoke
worker_1 | return callback(*args, **kwargs)
worker_1 | File "/usr/local/lib/python2.7/dist-packages/rq/cli/cli.py", line 206, in worker
worker_1 | w.work(burst=burst)
worker_1 | File "/usr/local/lib/python2.7/dist-packages/rq/worker.py", line 431, in work
worker_1 | self.register_birth()
worker_1 | File "/usr/local/lib/python2.7/dist-packages/rq/worker.py", line 251, in register_birth
worker_1 | raise ValueError(msg.format(self.name))
worker_1 | ValueError: There exists an active worker named u'5d36705967ac.22' already
Même problème ici.
Même problème ici, je le contourne en émettant simplement deux signaux SIGINT
au travailleur au lieu de laisser l'arrêt du processus au processus superviseur ( docker-compose
dans mon cas). Cela rend l'arrêt du travailleur proprement.
docker-compose exécuter worker-service
puis CTRL+C
Travaille pour moi.
J'ai le même problème, mais je démarre rq en arrière-plan, donc le correctif d'italomaia ne s'applique pas. Y a-t-il un moyen de contourner cela?
rq worker $RQ_WORKER_NAME -u $REDIS_DB_URL &
oui, envoyez-lui simplement un signal d'arrêt standard.
ps -aux | grep "rq worker"
puis prenez l'identifiant du processus (le deuxième nombre) et exécutez
kill <proc id>
Commentaire le plus utile
J'ai le même problème, lorsque j'arrête
rqworker
partir de la commande d'exécution docker-compose parCtrl+c
et que je veux le redémarrer.