我可能會誤解它是如何工作的(這就是我要問的原因),但是我認爲當一位芹菜工作者從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
因此,它是彷彿確認時由工作人員接收到郵件時會發生,但在此之前工人處理完該任務。
所以總結一下,我的問題是,芹菜工作者什麼時候承認它有任務?它似乎是一旦它收到該任務並開始處理它,而不是當它完成對它的處理時。有人可以確認嗎?
這是Python嗎? –
是的,我猜Python標籤過寬,刪除標籤。 – Bialecki