我可以在本地运行Redis,一切都很正常.
但是,当我部署到Heroku时,我收到以下错误:
Error 111 connecting to localhost:6379. Connection refused.
我已经建立了一个档案.
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中定义?为什么Heroku要try 连接到本地主机,而它甚至没有在worker.py中定义?