2012-09-26 41 views
9

我可能會誤解它是如何工作的(這就是我要問的原因),但是我認爲當一位芹菜工作者從RabbitMQ中消耗一項任務時,它會對它進行鎖定 - 可以這麼說 - 然後必須承認它已完成該任務使其完成。所以說我有4名工作人員,都有預取設置爲1和6個任務的隊列需要很長時間。一旦我開始那些工人和我運行:芹菜工人什麼時候向RabbitMQ承認它有任務?

rabbitmqctl -q list_queues name messages messages_ready messages_unacknowledged 

我希望看到這樣的:這表明4個任務正在運行(但尚未確認)和2已準備好爲

celery 6  2  4 

消耗。

我想,我的理解是錯誤的,因爲我實際看到的是:

celery 2  0  2 

因此,它是彷彿確認時由工作人員接收到郵件時會發生,但在此之前工人處理完該任務。

所以總結一下,我的問題是,芹菜工作者什麼時候承認它有任務?它似乎是一旦它收到該任務並開始處理它,而不是當它完成對它的處理時。有人可以確認嗎?

+0

這是Python嗎? –

+0

是的,我猜Python標籤過寬,刪除標籤。 – Bialecki

回答