Tôi muốn tận dụng Celery (với RabbitMQ làm phụ trợ MQ) để thực hiện các nhiệm vụ có hương vị khác nhau thông qua các Hàng đợi khác nhau. Một yêu cầu là tiêu thụ (bởi người lao động) từ một Hàng đợi cụ thể nên có khả năng bị tạm dừng và tiếp tục.công nhân không tiêu thụ công việc sau khi cần tây add_consumer được gọi là
Cần tây, dường như có this capability qua gọi add_consumer
và cancel_consumer
. Trong khi tôi có thể hủy việc tiêu thụ các nhiệm vụ từ hàng đợi cho một công nhân cụ thể, tôi không thể yêu cầu nhân viên tiếp tục tiêu thụ bằng cách gọi add_consumer
. The code to reproduce this issue is provided here. Đoán của tôi có thể là tôi thiếu một số loại tham số được cung cấp hoặc trong celeryconfig
hoặc thông qua các đối số khi bắt đầu công nhân?
Thật tuyệt vời khi có được đôi mắt mới mẻ về điều này. Không có nhiều thảo luận về Stackoverflow liên quan đến add_consumer cũng như trong Github. Vì vậy, tôi hy vọng có một số chuyên gia ở đây sẵn sàng chia sẻ suy nghĩ/kinh nghiệm của họ.
-
Tôi đang chạy dưới đây:
Hệ điều hành Windows, RabbitMQ 3.5.6, Erlang 18.1, Python 3.3.5, cần tây 3.1.15
Cảm ơn bạn đã thử. Gist đa tập tin mà tôi đã cung cấp để tái tạo hành vi này là sử dụng add_consumer. Trong khi nhân viên thừa nhận thực hiện add_consumer, nó không tiếp tục tiêu thụ các nhiệm vụ trong hàng đợi. Tôi nghi ngờ cần tây của tôi không được đặt đúng cách hoặc có lỗi tiềm ẩn trong cần tây. – teng
@teng Bạn đã thử với 'queue = high' trong khi thêm người tiêu dùng? Tôi đã sử dụng ý chính của bạn và sao chép hành vi. Sau khi chuyển các thông số thích hợp, nó hoạt động chính xác. – ChillarAnand
Tôi đã thêm 'queue = high' làm kwarg vào add_consumer, như trái ngược với chỉ arg, và sau khi thực hiện resume.py, công nhân vẫn không tốn công việc. Bạn có phiền cho tôi biết hệ điều hành của bạn là gì không, và phiên bản thỏ và cần tây bạn đang sử dụng? – teng