je lance le céleri:Céleri travailleurs multi-exécution des tâches inattendues pour
celery multi start --app=myapp fast_worker
slow_worker
-Q:fast_worker fast-queue
-Q:slow_worker slow-queue
-c:fast_worker 1 -c:slow_worker 1
--logfile=%n.log --pidfile=%n.pid
Et celerybeat:
celery beat -A myapp
Tâche:
@task.periodic_task(run_every=timedelta(seconds=5), ignore_result=True)
def test_log_task_queue():
import time
time.sleep(10)
print "test_log_task_queue"
Routing:
CELERY_ROUTES = {
'myapp.tasks.test_log_task_queue': {
'queue': 'slow-queue',
'routing_key': 'slow-queue',
},
}
J'utilise rabbitMQ. Quand j'ouvre le panneau d'administration rabbitMQ, je vois que mes tâches sont dans slow-queue
, mais quand j'ouvre les logs je vois la sortie de tâche pour les deux ouvriers. Pourquoi les deux travailleurs exécutent-ils mes tâches, même lorsque la tâche n'est pas dans la file d'attente des travailleurs?