2012-09-26 6 views
9

Być może nie rozumiem, jak to działa (dlatego właśnie pytam), ale myślę, że gdy pracownik selera zużywa zadanie od RabbitMQ, to blokuje to - że tak powiem - a następnie musi potwierdzić to ukończenie to zadanie jest gotowe. Powiedzmy, że mam 4 pracowników, dla których wszystkie mają ustawienie pobierania wstępnego na 1 i kolejki 6 zadań, które zajmują dużo czasu. Raz zacznę tych pracowników i biegnę:Kiedy pracownik selera potwierdza firmie RabbitMQ, że ma zadanie?

rabbitmqctl -q list_queues name messages messages_ready messages_unacknowledged 

będę oczekiwać, aby zobaczyć coś takiego:

celery 6  2  4 

wskazując, że 4 Zadania są wyświetlane (ale nie został jeszcze potwierdzony) i 2 są gotowe do strawiony.

Myślę, że moje rozumienie jest błędne, ponieważ to, co rzeczywiście zobaczyć to:

celery 2  0  2 

Więc to tak, jakby przyznając się dzieje, gdy wiadomość została odebrana przez pracownika, ale przed tym pracownik zakończy przetwarzanie tego zadania.

Podsumowując, moje pytanie brzmi: kiedy pracownik selera przyznaje, że ma zadanie? Wygląda na to, że jest po otrzymaniu tego zadania i rozpoczyna pracę nad nim, a nie po zakończeniu pracy nad nim. Czy ktoś może potwierdzić?

+0

A to jest Python? –

+0

Yah Myślę, że oznaczanie jako Python jest zbyt szerokie, usunięto ten tag. – Bialecki

Odpowiedz