2013-04-23 32 views
5

我有我的芹菜配置芹菜嘗試連接到錯誤的經紀人

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

然而,每當我運行celeryd,我得到這個錯誤

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

爲什麼沒有連接到Redis的經紀人我設置它,這是順便運行?

+1

看起來像芹菜c annot找到你的配置並使用默認值。你把你的'celeryconfig.py'文件放在哪裏?它必須在你的python路徑中([docs](http://docs.celeryproject.org/en/latest/configuration.html#configuration-and-defaults))。 – alecxe 2013-04-24 07:06:05

回答

4

導入您的芹菜,並添加你的經紀人那樣:

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

這會去哪裏?我有一個celery.py文件,其中包含與您的答案類似的代碼,與我的settings.py文件位於同一個文件夾中。然而,我得到與OP相同的錯誤。同樣的問題,當放在settings.py – 2015-03-30 13:15:49

+0

我有同樣的問題。請參閱我的帖子http://stackoverflow.com/questions/29402447/how-to-set-celeryconfig-file-in-in-django?noredirect=1#comment47060151_29402447 – user61629 2015-04-04 15:45:04

+0

據我所知'config_from_object'會覆蓋' broker'作爲構造函數的參數,如果'BROKER_URL'存在於celeryconfig文件中...... – chefarov 2017-05-29 22:55:49

0

如果遵循First Steps with Celery教程,具體如下:

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

,那麼你需要用CELERY前綴的設置,所以改變你的BROKER_URL到:

CELERY_BROKER_URL = 'redis://127.0.0.1:6379' 
相關問題