首页 文章

连接在Heroku上拒绝Redis

提问于
浏览
1

我正试图在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 回答

  • 1

    看起来您没有使用 REDISTOGO_URL ,因为错误消息指出 localhost

    尝试检查:

    • heroku config,只是为了检查在配置中是否设置了REDISTOGO_URL

    • 转到heroku上的shell(如this),看看python是否正确获取了url

    你是否在同一个应用程序上运行芹菜,如果没有检查其他服务器的配置 .

  • 1

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

    我有什么:

    CELERY_RESULT_BACKEND = 'redis'
    

    应该是什么:

    CELERY_RESULT_BACKEND = REDIS_URL
    

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

相关问题