【发布时间】:2024-01-12 18:37:01
【问题描述】:
我能够在本地运行 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 to go 是我的应用程序的已安装插件。
REDISTOGO_URL 是否必须在 settings.py 中定义?为什么在worker.py中甚至没有定义heroku时却试图连接到本地主机?
【问题讨论】:
-
能不直接把
redis_url传给Redis,不解析吗?很确定这行得通。 -
我会再试一次。第一次好像没用。