2013-02-27 10 views
15

W dokumentacji celeryd-Multi, znajdziemy tu npW selera, jaki byłby cel, aby wielu pracowników przetwarzało tę samą kolejkę?

# 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. 
$ celeryd-multi start 10 -l INFO -Q:1-3 images,video -Q:4,5 data 
    -Q default -L:4,5 DEBUG 

(stąd: http://docs.celeryproject.org/en/latest/reference/celery.bin.celeryd_multi.html#examples)

Jaki byłby praktyczny przykład dlatego, że byłoby dobrze, aby mieć więcej niż jednego pracownika na pojedynczym hoście przetwarza tę samą kolejkę, jak w powyższym przykładzie? Czy to nie jest właśnie ustawienie dla współbieżności?

Dokładniej, będzie tam żadnej praktycznej różnicy między następującymi dwiema liniami (A i B) ?:

A:

$ celeryd-multi start 10 -c 2 -Q data 

B:

$ celeryd-multi start 1 -c 20 -Q data 

Obawiam że brakuje mi cennej wiedzy o kolejkach zadań, ponieważ nie rozumiem tej praktycznej różnicy i byłbym bardzo wdzięczny, gdyby ktoś mnie oświecił.

Dzięki!

Odpowiedz

8

Jaki byłby praktyczny przykład dlatego, że byłoby dobrze, aby mieć więcej niż jednego pracownika na pojedynczym procesie gospodarza tej samej kolejki, tak jak w powyższym przykładzie ?

Odpowiedź:

Więc, może chcesz uruchomić wiele instancji tego samego pracownika na ekspres węzła, jeżeli:

  • Używasz basen wieloprocesorowe i chcą konsumować wiadomości równolegle. Niektóre z nich zgłaszają lepszą wydajność przy użyciu wielu instancji klasy zamiast uruchamiania pojedynczej instancji z wieloma pracownikami puli .

  • Używasz eventlet/gevent (i ze względu na niesławną GIL, także pulę "wątków"), i chcesz wykonywać zadania na wielu rdzeniach procesora .

referencyjny: http://www.quora.com/Celery-distributed-task-queue/What-is-the-difference-between-workers-and-processes

Powiązane problemy