2012-05-18 28 views
6

tanınmadı:Django-kereviz için bir arka uç nasıl belirleyebilirim? Ben CELERY_RESULT_BACKEND, ancak ilk başta ben celeryconfig.py yılında CELERY_RESULT_BACKEND = "AMQP" ama olsun seti

>>> from tasks import add 
>>> result = add.delay(3,5) 
>>> result.ready() 

Traceback (most recent call last): 
    File "<console>", line 1, in <module> 
    File "/djangoprojects/venv/local/lib/python2.7/site-packages/celery/result.py", line 105, in ready 
    return self.state in self.backend.READY_STATES 
    File "/djangoprojects/venv/local/lib/python2.7/site-packages/celery/result.py", line 184, in state 
    return self.backend.get_status(self.task_id) 
    File "/djangoprojects/venv/local/lib/python2.7/site-packages/celery/backends/base.py", line 414, in _is_disabled 
    raise NotImplementedError("No result backend configured. " 
NotImplementedError: No result backend configured. Please see the documentation for more information. 
+0

Python kabuğunu aynı dizinden celeryconfig.py ile mi çalıştırıyorsunuz? – mher

cevap

12

o kabuğundan

python manage.py shell 

Ve deneyin komutlar. Bunların bir kısmının, daha açık bir şekilde ortaya çıkacağını belirten büyük belgelerin tümü düşünebilir.

Hem RabbitMQ'nu yukarı hem de çalışır durumda tuttuğunuzu (çalıştırması gerekiyor) ve dj-celery yüklendiğini varsayalım.

Bunu yaptıktan sonra yapmanız gereken tek şey, bu tek satırı setting.py dosyanıza eklemektir.

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

Sonra syncdb çalıştırın ve kullanarak bu şeyi başlatmak gerekir: Eğer yakalanan olayları istediğiniz

python manage.py celeryd -E -B --loglevel=info 

-E devletler ve -B sen celerybeats çalıştıran istediğiniz belirtiyor. Birincisi, yönetici penceresinde gerçekten bir şey görmenizi sağlar ve daha sonra programlamanızı sağlar. Sonunda, olayları ve durumu gerçekten yakalayacağınızdan emin olmanız gerekir.

./manage.py celerycam 

Ve sonra nihayet senin docs sağlanan çalışma örneği görmek mümkün .. - Yine diyor olduğunu tasks.py yarattı varsayarak: Yani başka terminalde bu çalıştırın. Daha sonra, durumunuzu yönetici panelinde görüntüleyebilirsiniz. Ayrıca, daha sonra yönetim panelindeki durumunuzu görebilirsiniz.

Django Task Manager

umarım bu yardımcı olur !! Bana yardımcı olan bir şey daha eklerim. RabbitMQ Log dosyasını izlemek, django-kereverin aslında RabbitMQ ile konuştuğunu belirlememde yardımcı oldu.

+0

Ben tavşanmq çalışan ve django-kereviz yüklü vardı, ama ben django-kereviz çalışan yoktu. – johnlockwood

1

Eğer Django kereviz çalıştırıyor musunuz? Eğer öyleyse, django (veya teknik terim ne olursa olsun) bağlamında bir python kabuğu başlatmanız gerekiyorsa.

Tipi: Sadece bu yüzden bu biraz ışık tutabilecek bu geçti