如何解决错误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 举报,一经查实,本站将立刻删除。