连接在Heroku上拒绝Redis

时间:2012-08-05 02:15:26

标签: django heroku redis celery

我正在尝试在Heroku上设置Redis作为Celery的后端。我有它在本地工作,但在Heroku上,我收到此错误(在芹菜任务完成后):ConnectionError:错误111连接localhost:6379。连接被拒绝。

从其他答案可以看出,这表明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

2 个答案:

答案 0 :(得分:1)

您似乎没有使用REDISTOGO_URL,因为错误消息指出localhost

尝试检查:

  1. heroku config,只是为了检查在配置中是否设置了REDISTOGO_URL
  2. 转到heroku上的shell(如this)并查看python是否正确获取url
  3. 您是否在同一个应用上运行芹菜,如果没有检查其他服务器的配置。

答案 1 :(得分:1)

发现问题。我将芹菜后端配置为字符串'redis'而不是REDIS_URL。

我有什么:

CELERY_RESULT_BACKEND = 'redis'

应该是什么:

CELERY_RESULT_BACKEND = REDIS_URL

德米特里 - 感谢你的帮助。