微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

错误111连接到localhost:6379拒绝连接Django Heroku

如何解决错误111连接到localhost:6379拒绝连接Django Heroku

原来我需要设置类似的东西才能在Heroku上工作。

redis_url = os.getenv('REdisTOGO_URL')

urlparse.uses_netloc.append('redis')
url = urlparse.urlparse(redis_url)
conn = Redis(host=url.hostname, port=url.port, db=0, password=url.password)

解决方法

我能够在本地运行redis,并且一切正常。

但是,当我部署到heroku时,出现此错误:

Error 111 connecting to localhost:6379. Connection refused.

我已经建立了一个Procfile与…

web: gunicorn odb.wsgi --log-file -
worker: python worker.py

我有一个worker.py文件…

import os
import urlparse
from redis import Redis
from rq import Worker,Queue,Connection

listen = ['high','default','low']

redis_url = os.getenv('REDISTOGO_URL')
if not redis_url:
    raise RuntimeError('Set up Redis To Go first.')

urlparse.uses_netloc.append('redis')
url = urlparse.urlparse(redis_url)
conn = Redis(host=url.hostname,port=url.port,db=0,password=url.password)

if __name__ == '__main__':
with Connection(conn):
    worker = Worker(map(Queue,listen))
    worker.work()

REDISTOGO_URL变量出现在heroku配置中。

Redis go是我的应用程序的已安装加载项。

是否必须在settings.py中定义REDISTOGO_URL?为什么在worker.py中甚至没有定义heroku时,heroku为何尝试连接到本地主机?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。