2017-06-08 1 views
0

Selon le Celery documentation, l'option de ligne de commande -Q/--queues peut être utilisé pour:Céleri: Quelles sont les files d'attente consommés si l'option -Q n'est pas spécifiée

-Q, --queues

Liste des files d'attente à activer pour ce travailleur, séparées par une virgule. Par défaut, toutes les files d'attente configurées sont activées. Exemple: -Q vidéo, image

Cependant, je ne comprends pas ce que cela signifie avec configurées files d'attente ici. Cela signifie-t-il toutes les files d'attente connues de Celery, y compris celle par défaut? Ou seulement ceux définis dans l'option de configuration task_queues? Est-ce que l'option task_create_missing_queues affecte cela?

+0

Si «-q» n'est pas fourni, Celery worker sélectionne les tâches dans toutes les files d'attente définies dans la configuration. Pour autant que je sache, 'task_create_missing_queues' est complètement disjoint de l'option' -q'. Vous pouvez toujours essayer de courir avec ces configurations pour confirmer les résultats. – Saurabh

+0

Avec "toutes les files d'attente définies dans la configuration" vous voulez dire "toutes les tâches définies dans' task_queues' ", n'est-ce pas? – dukebody

Répondre

0

Si vous ne l'avez pas configuré quoi que ce soit, il consommera de file d'attente celery et vous pouvez comme vous pouvez le voir sur les journaux

celery worker -A t 

-------------- [email protected] v4.0.2 (latentcall) 
---- **** ----- 
--- * *** * -- Linux-4.4.0-79-generic-x86_64-with-Ubuntu-16.04-xenial 2017-06-09 10:39:14 
-- * - **** --- 
- ** ---------- [config] 
- ** ---------- .> app:   tasks:0x7f15cf9cdfd0 
- ** ---------- .> transport: amqp://guest:**@localhost:5672// 
- ** ---------- .> results:  rpc:// 
- *** --- * --- .> concurrency: 4 (prefork) 
-- ******* ---- .> task events: OFF (enable -E to monitor tasks in this worker) 
--- ***** ----- 
-------------- [queues] 
       .> celery   exchange=celery(direct) key=celery 

Vous pouvez également configurer le céleri consommer un ensemble de files d'attente par défaut comme celui-ci

from celery import Celery 
from kombu import Queue 


app = Celery(broker='amqp://[email protected]//', backend='rpc') 
app.conf.task_queues = (Queue('foo'), Queue('bar')) 

maintenant, tous les travailleurs consomment foo, bar files d'attente par défaut.

-------------- [queues] 
       .> bar    exchange=celery(direct) key=celery 
       .> foo    exchange=celery(direct) key=celery 
+0

Donc même si je définis une tâche pointant vers la queue 'bar' avec' task_create_missing_queues = True', la file d'attente 'bar' ne sera pas écoutée par défaut si je n'utilise pas l'option' -Q'? – dukebody