Tôi đã xây dựng một ứng dụng web Django và một số dịch vụ Django-Piston. Sử dụng giao diện web người dùng gửi một số dữ liệu được đăng lên dịch vụ web và dịch vụ web đó sử dụng Django-cần tây để bắt đầu tác vụ nền.Chạy Django-Celery trong Sản xuất
Mọi thứ hoạt động tốt trong môi trường phát triển bằng cách sử dụng manage.py. Bây giờ tôi đang cố gắng di chuyển này để sản xuất trên một máy chủ apache thích hợp. Các ứng dụng web và các dịch vụ web hoạt động tốt trong sản xuất nhưng tôi có các vấn đề nghiêm trọng bắt đầu từ celeryd như một daemon. Dựa trên các hướng dẫn sau: http://docs.celeryproject.org/en/latest/tutorials/daemonizing.html#running-the-worker-as-a-daemon Tôi đã tạo một tệp celeryconfig.py và đặt nó trong thư mục/usr/bin (đây là nơi celeryd là vị trí trên máy chủ Linux của tôi).
CELERYD_CHDIR="/srv/http/ControllerFramework/"
DJANGO_SETTINGS_MODULE="settings"
CELERYD="/srv/http/ControllerFramework/manage.py celeryd"
Tuy nhiên khi tôi cố gắng để bắt đầu celeryd từ dòng lệnh tôi nhận được lỗi sau:
"Missing connection string! Do you have "
celery.exceptions.ImproperlyConfigured: Missing connection string! Do you have CELERY_RESULT_DBURI set to a real value?
Không chắc chắn nơi để đi từ đây. Dưới đây là phần settings.py của tôi vì nó liên quan đến vấn đề này:
BROKER_HOST = "localhost"
BROKER_PORT = 5672
BROKER_USER = "controllerFramework"
BROKER_PASSWORD = "******"
BROKER_VHOST = "localhost"
'CELERY_RESULT_DBURI' có thực sự được đặt ở đâu đó không? –
tôi đã cố gắng thiết lập giá trị như sau: CELERY_RESULT_BACKEND = 'AMQP' Nhưng tôi nhận được một lỗi khi tôi cố gắng chạy celeryd: [2010/07/23 12: 46: 13.138: CẢNH BÁO/MainProcess] nâng cao KeyError ("Thiếu tên máy chủ cho kết nối AMQP.") [2010-07-23 12: 46: 13,138: CẢNH BÁO/MainProcess] KeyError [2010-07-23 12: 46: 13,138: CẢNH BÁO/MainProcess]: [2010 -07-23 12: 46: 13,139: CẢNH BÁO/MainProcess] 'Thiếu tên máy chủ cho kết nối AMQP.' Vì tôi gặp lỗi này và tôi không thể tìm thấy bất kỳ nơi nào trong tài liệu cho django-celery rằng giá trị này cần được đặt, tôi giả định rằng tôi đã làm điều gì đó sai, một lần nữa. – Przemek
Tôi sẽ đoán rằng có thể khi chạy trong sản xuất, các cài đặt được cho là nằm trong celeryconfig.py? và không phải trong settings.py. Trong trường hợp đó, có phải tệp tin celeryconfig.py được thêm vào không? – Przemek