2012-09-26 30 views
9

Tôi có thể hiểu nhầm cách thức hoạt động (đó là lý do tôi hỏi), nhưng tôi nghĩ khi một nhân viên cần tây tiêu thụ một nhiệm vụ từ RabbitMQ, nó sẽ đặt khóa - để nói - và sau đó phải thừa nhận nó đã hoàn thành nhiệm vụ đó đã hoàn thành. Vì vậy, nói rằng tôi có 4 công nhân mà tất cả đều có cài đặt prefetch ở 1 và xếp hàng 6 nhiệm vụ mất nhiều thời gian. Khi tôi bắt đầu những công nhân và tôi chạy:Khi nào một nhân viên cần tây công nhận RabbitMQ rằng họ có nhiệm vụ?

rabbitmqctl -q list_queues name messages messages_ready messages_unacknowledged 

tôi mong đợi để xem một cái gì đó như:

celery 6  2  4 

chỉ ra rằng 4 nhiệm vụ đang chạy (nhưng chưa được thừa nhận) và 2 đã sẵn sàng để được tiêu thụ.

Tôi nghĩ rằng hiểu biết của tôi là sai vì những gì tôi thực sự thấy là:

celery 2  0  2 

Vì vậy, nó như thể thừa nhận xảy ra khi một thông điệp được nhận bởi một nhân viên, nhưng trước khi người lao động đó được xử lý xong nhiệm vụ đó.

Vì vậy, để tổng hợp, câu hỏi của tôi là, khi nào một nhân viên cần tây công nhận rằng nó có nhiệm vụ? Có vẻ như nó là một khi nó nhận được nhiệm vụ đó và bắt đầu làm việc trên nó, không phải khi nó hoàn thành công việc trên nó. Ai đó có thể xác nhận?

+0

Và đây là Python? –

+0

Tôi đoán việc gắn thẻ là Python quá rộng, đã xóa thẻ đó. – Bialecki

Trả lời

Các vấn đề liên quan