2012-09-26 7 views
9

Potrei essere frainteso come funziona (è per questo che sto chiedendo), ma penso che quando un operatore di sedani consuma un compito da RabbitMQ mette un blocco su di esso - per così dire - e quindi deve riconoscerlo completato quel compito significa che è fatto. Quindi dire che ho 4 lavoratori che hanno tutti l'impostazione di prefetch su 1 e la coda di 6 task che richiedono molto tempo. Una volta che mi metto quei lavoratori e corro:Quando un operatore di sedani riconosce a RabbitMQ che ha un compito?

rabbitmqctl -q list_queues name messages messages_ready messages_unacknowledged 

mi aspetto di vedere qualcosa di simile:

celery 6  2  4 

che indica che 4 task sono in esecuzione (ma non ancora riconosciuto) e 2 sono pronti per essere consumato.

Credo che la mia comprensione è sbagliato perché quello che in realtà vedo è:

celery 2  0  2 

Quindi è come se il riconoscimento avviene quando un messaggio viene ricevuto da un lavoratore, ma prima il lavoratore termina l'elaborazione quell'attività.

Quindi, per riassumere, la mia domanda è, quando un operatore di sedano riconosce che ha un compito? Sembra che sia una volta che riceve quell'attività e inizia a lavorarci, non quando finisce di lavorarci sopra. Qualcuno può confermare?

+0

E questo è Python? –

+0

Yah immagino che taggando come Python sia eccessivamente ampio, ho rimosso quel tag. – Bialecki

risposta

Problemi correlati