2013-04-23 27 views
5

tôi có trong cấu hình cần tây của tôiCần tây cố gắng để kết nối với người môi giới sai

BROKER_URL = 'redis://127.0.0.1:6379' 
CELERY_RESULT_BACKEND = 'redis://127.0.0.1:6379' 

Tuy nhiên, bất cứ khi nào tôi chạy celeryd, tôi nhận được lỗi này

consumer: Cannot connect to amqp://[email protected]:5672//: [Errno 111] Connection refused. Trying again in 2.00 seconds... 

Tại sao nó không kết nối với redis môi giới tôi thiết lập nó với, đang chạy btw?

+1

Có vẻ như cần tây c chú thích tìm cấu hình của bạn và sử dụng mặc định. Bạn đã đặt tập tin 'celeryconfig.py' ở đâu? Nó phải nằm trên đường dẫn python của bạn ([docs] (http://docs.celeryproject.org/en/latest/configuration.html#configuration-and-defaults)). – alecxe

Trả lời

4

nhập khẩu cần tây và thêm nhà môi giới của bạn như thế:

celery = Celery('task', broker='redis://127.0.0.1:6379') 
celery.config_from_object(celeryconfig) 
+0

Trường hợp này sẽ đi đâu? Tôi có một tập tin celery.py trong đó có chứa mã tương tự như câu trả lời của bạn, mà là trong cùng một thư mục như settings.py của tôi. Tuy nhiên, tôi nhận được lỗi tương tự như OP. Vấn đề tương tự khi đặt trong settings.py –

+0

Tôi gặp sự cố tương tự. Vui lòng xem bài đăng của tôi tại http://stackoverflow.com/questions/29402447/how-to-set-celeryconfig-file-in-in-django?noredirect=1#comment47060151_29402447 – user61629

+0

Theo như tôi biết 'config_from_object' sẽ ghi đè lên' môi giới' được đưa ra làm đối số cho hàm tạo, nếu 'BROKER_URL' tồn tại bên trong tệp tin celeryconfig ... – chefarov

0

Nếu bạn làm theo First Steps with Celery hướng dẫn, cụ thể:

app.config_from_object('django.conf:settings', namespace='CELERY') 

thì bạn cần phải thêm tiền tố thiết lập của bạn với CELERY, vì vậy thay đổi BROKER_URL của bạn đến:

CELERY_BROKER_URL = 'redis://127.0.0.1:6379' 
Các vấn đề liên quan