2013-08-08 22 views
22

Tôi đang cố gắng thiết lập Django-Celery. Tôi sẽ thông qua các hướng dẫnDjango Celery - Không thể kết nối với amqp: //[email protected]: 5672 //

http://docs.celeryproject.org/en/latest/django/first-steps-with-django.html

khi tôi chạy nhân $ python manage.py cần tây --loglevel = info

tôi nhận được

[Tasks] 


/Users/msmith/Documents/dj/venv/lib/python2.7/site-packages/djcelery/loaders.py:133:  UserWarning: Using settings.DEBUG leads to a memory leak, never use this setting in  production environments! 
warnings.warn('Using settings.DEBUG leads to a memory leak, never ' 

[2013-08-08 11:15:25,368: WARNING/MainProcess] /Users/msmith/Documents/dj/venv/lib/python2.7/site-packages/djcelery/loaders.py:133: UserWarning: Using settings.DEBUG leads to a memory leak, never use this setting in production environments! 
warnings.warn('Using settings.DEBUG leads to a memory leak, never ' 

[2013-08-08 11:15:25,369: WARNING/MainProcess] [email protected] ready. 
[2013-08-08 11:15:25,382: ERROR/MainProcess] consumer: Cannot connect to  amqp://[email protected]:5672/celeryvhost: [Errno 61] Connection refused. 
Trying again in 2.00 seconds... 

có ai gặp phải vấn đề này trước?

settings.py

# Django settings for summertime project. 
import djcelery 
djcelery.setup_loader() 

BROKER_URL = 'amqp://guest:[email protected]:5672/' 

... 

INSTALLED_APPS = { 
    ... 
    'djcelery', 
    'celerytest' 
} 

wsgi.py

import djcelery 
djcelery.setup_loader() 
+5

bạn có thể xác nhận xem dịch vụ của bạn đang chạy không? kiểm tra hướng dẫn này nó có hướng dẫn từng bước: http://hairycode.org/2013/07/23/first-steps-with-celery-how-to-not-trip – andrean

+0

cần tây môi giới tin nhắn cần. Tôi nghĩ rằng bạn đã bỏ lỡ cài đặt môi giới thư. bạn cần phải cài đặt rabbitmq. sau khi cài đặt, bạn cần phải thực hiện vhost, người dùng và thiết lập quyền. – Curry

Trả lời

16

Vấn đề là bạn đang cố gắng để kết nối với một trường hợp địa phương của RabbitMQ. Nhìn vào dòng này trong settings.py

BROKER_URL = bạn 'AMQP: // khách: khách @ localhost: 5672 /'

Nếu bạn đang làm việc trên phát triển, bạn có thể tránh được thiết lập Thỏ và tất cả các mớ hỗn độn xung quanh nó, và chỉ sử dụng một phiên bản phát triển của một hàng đợi tin nhắn với cơ sở dữ liệu Django.

Làm điều này bằng cách thay thế cấu hình trước đó với

BROKER_URL = 'django: //' và thêm ứng dụng này:

INSTALLED_APPS + = ('kombu.transport.django',)

Cuối cùng, khởi động người lao động với

./manage py nhân cần tây --loglevel = info

Nguồn: http://docs.celeryproject.org/en/latest/getting-started/brokers/django.html

+2

fantastico! làm việc như trong những câu chuyện cổ tích! – doniyor

+2

Wow, hướng dẫn hoàn toàn bỏ qua bit này. – nym

1

Nếu bạn đang Workling trên một môi trường sản xuất,

Bạn cần phải đầu tiên cài đặt và thiết lập một máy chủ RabbitMQ. Bạn có thể tham khảo trang web thỏmq để biết các bước cài đặt.

Trong cài đặt bạn phải viết dòng này:

CELERY_RESULT_BACKEND='djcelery.backends.database:DatabaseBackend', 
BROKER_URL = 'amqp://guest:[email protected]:5672//' 

Sau khi tất cả các thiết lập của máy chủ rabitmq bạn phải chạy hai lệnh này,

export C_FORCE_ROOT='true' 
celery -A transcoder(name of app) worker --loglevel=info 
-1

tôi đã cùng một vấn đề và lý do là mà tôi quên thêm các chất liệu cần tây (CELERY_RESULT_BACKEND, BROKER_URL, ....)
Sau khi thêm những vấn đề này, hãy giải quyết vấn đề!

2

Tôi gặp lỗi này vì rabbitmq chưa được bắt đầu.Nếu bạn đã cài đặt rabbitmq qua brew, bạn có thể bắt đầu bằng cách sử dụng brew services start rabbitmq

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