Sono in grado di eseguire redis localmente e tutto funziona.Errore 111 connessione a localhost: 6379. Connessione rifiutata. Django Heroku
Tuttavia quando schiero a Heroku ottengo questo errore:
Error 111 connecting to localhost:6379. Connection refused.
Ho creato un Procfile con ...
web: gunicorn odb.wsgi --log-file -
worker: python worker.py
Ho un file 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()
Una variabile REDISTOGO_URL appare nella configurazione di heroku.
Redis to go è un componente aggiuntivo installato per la mia app.
REDISTOGO_URL deve essere definito in settings.py? Perché heroku sta tentando di connettersi all'host locale quando non è nemmeno definito in worker.py?
puoi non solo passare il 'redis_url' direttamente a Redis, senza analizzarlo? Abbastanza sicuro che funzioni. –
Ci riproverò. Non sembrava funzionare la prima volta. –