2012-08-05 105 views
1

我試圖在Heroku上設置Redis作爲Celery的後端。我有本地工作,但在Heroku,我得到這個錯誤(芹菜任務完成後):ConnectionError:錯誤111連接本地主機:6379。拒絕連接。Redoku在Heroku上拒絕連接

從我可以告訴其他答案,這將表明redis服務器不在線,雖然REDISTOGO_URL似乎配置正確。

在settings.py:

REDIS_URL = os.getenv('REDISTOGO_URL', 'redis://localhost:6379/0') 

在tasks.py:

from celery import Celery 
celery = Celery('tasks', backend=settings.CELERY_RESULT_BACKEND, broker=settings.REDIS_URL) 

版本:

celery==3.0.5 
celery-with-redis==3.0 
django-celery==3.0.4 
kombu==2.3.2 
redis==2.6.0 

回答

1

發現問題。我將芹菜後端配置爲字符串'redis'而不是REDIS_URL。

我有什麼:

CELERY_RESULT_BACKEND = 'redis' 

它應該是什麼:

CELERY_RESULT_BACKEND = REDIS_URL 

德米特里 - 感謝你的幫助。

0

看起來你沒有使用,因爲錯誤信息國家localhost

嘗試檢查:

  1. Heroku的配置,只是爲了檢查REDISTOGO_URL在配置
  2. 轉到殼在Heroku上設置(如this),看看是否蟒蛇得到URL正確

待辦事項你在相同的應用程序上運行芹菜,如果不檢查其他服務器的配置。

+0

這也是我的想法 - 我如何檢查它的用途? – Mike 2012-08-05 02:40:37

+0

Mike,我已更新我的回答 – 2012-08-05 03:15:21

+0

REDISTOGO_URL在配置中正確設置。而且Python也在拉它(如果我導入settings.REDIS_URL,它與Heroku配置相匹配)。芹菜是在同一個應用程序。 – Mike 2012-08-05 03:53:38