2014-04-15 15 views
5

Ich benutze Sellerie-Django, um Aufgaben auf meinem Website-Back-End-Warteschlange. Ich versuche ein Setup zu erstellen, wo ich zwei Warteschlangen mit den Namen "niedrig" und "hoch" und zwei Arbeiter W1 und W2 habe. ich sie die Aufgaben aus der Warteschlange in der folgenden Art und Weise konsumieren will:mehrere Arbeiter und mehrere Warteschlangen auf Sellerie Django Daemon

W1 < - niedrig, hoch

W2 < - hoch

Normalerweise wie getan werden kann Dies.

Öffnen Sie das Terminal 1 und geben Sie celery worker -n W1 -Q low,high $

Öffnen Sie das Terminal 2 und geben Sie celery worker -n W2 -Q high $

aber ich versuche, das gleiche über celeryd Daemon zu tun.

Ich befolge die Schritte in der Verbindung: http://celery.readthedocs.org/en/latest/tutorials/daemonizing.html#example-configuration Aber die verfügbaren Optionen scheinen nicht genug, um die Anforderung zu erfüllen.

Bitte helfen Sie mir mit einigen Konfigurationen, die mir nicht bewusst sind, die es möglich machen könnten. Ich würde es vorziehen, nicht mehrere Daemons laufen zu lassen oder zusätzliche Tools wie Supervisord zu benutzen, außer es ist wirklich notwendig (Vielleicht könntest du mich auch dazu beraten).

Antwort

9

können Sie CELERYD_OPTS Option -Q Parameter übergeben ähnlich den Beispielen aus Celery reference:

# Advanced example starting 10 workers in the background: 
# * Three of the workers processes the images and video queue 
# * Two of the workers processes the data queue with loglevel DEBUG 
# * the rest processes the default' queue. 
$ celery multi start 10 -l INFO -Q:1-3 images,video -Q:4,5 data 
    -Q default -L:4,5 DEBUG 

# You can show the commands necessary to start the workers with 
# the 'show' command: 
$ celery multi show 10 -l INFO -Q:1-3 images,video -Q:4,5 data 
    -Q default -L:4,5 DEBUG 
+0

Danke ... es funktionierte..überblickte dies in der Dokumentation :) – rohan

+1

Wenn ich meine Knoten wie 'CELERYD_NODES =" w1 w2 w3 w4 w5 "' anstelle von '-c 4' kann ich immer noch die Syntax von 'verwenden -Q: 1-3'? – dashesy

4

Sie mehrere Knoten in CELERY_NODES angeben und Knotennamen übergeben Argumente CELERYD_OPTS, zum Beispiel:

CELERY_NODES="W1 W2" 
CELERYD_OPTS="-Q:W1 low,high -Q:W2 high"