2012-05-18 94 views
6

我設置CELERY_RESULT_BACKEND = 「AMQP」 在celeryconfig.py 但我得到:如何爲django-芹菜設置後端。我設置CELERY_RESULT_BACKEND,但它不認可

>>> 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

你是否在與celeryconfig.py相同的目錄下運行python shell? – mher

回答

12

我只是通過這個去了,所以我可以提供一些線索這光你的命令。有人可能會認爲所有這些偉大的文檔都說明了這一點會更加明顯。

我假設你有兩個RabbitMQ啓動並運行(它需要運行),並且你已經安裝了dj-celery

一旦你有了,那麼你所需要做的就是將這一行包含在你的setting.py文件中。

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

然後,你需要運行執行syncdb和啓動這個事情了使用:

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

-E狀態要捕獲的事件和狀態-B你想celerybeats運行。前者使您能夠在管理窗口中實際看到某些內容,而後者允許您安排時間。最後,你需要確保你實際將捕獲事件和狀態。因此,在另一個終端運行這個命令:

./manage.py celerycam 

然後最後你能看到在文檔中提供的工作示例。 - 再假設你創建的tasks.py也就是說。

>>> result = add.delay(4, 4) 
>>> result.ready() # returns True if the task has finished processing. 
False 
>>> result.result # task is not ready, so no return value yet. 
None 
>>> result.get() # Waits until the task is done and returns the retval. 
8 
>>> result.result # direct access to result, doesn't re-raise errors. 
8 
>>> result.successful() # returns True if the task didn't end in failure. 
True 

此外,您可以在管理面板中查看您的狀態。

Django Task Manager

我希望這有助於!我會再添加一件幫助我的東西。 觀看RabbitMQ日誌文件是關鍵,因爲它幫助我確定django-celery實際上是在與RabbitMQ交談。

+0

我已經安裝了rabbitmq運行和django-celery,但是我沒有運行django-芹菜。 – johnlockwood

1

你運行Django的芹菜?

如果是這樣,您需要在django(或任何技術術語)的上下文中啓動一個python shell。

類型:

python manage.py shell 

並嘗試從外殼

相關問題