I am able to run redis locally and everything works.
However when I deploy to heroku I get this error:
Error 111 connecting to localhost:6379. Connection refused.
I have set up a Procfile with...
web: gunicorn odb.wsgi --log-file - worker: python worker.py
I have a worker.py file...
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()
A REDISTOGO_URL variable appears in the heroku config.
Redis to go is an installed add-on for my app.
Does REDISTOGO_URL have to be defined in settings.py? Why is heroku trying to connect to the local host when it is not even defined in worker.py?
May be not directly related to your question but I was facing same error and it turn out that on my system redis-server package was not installed.
Problem was resolved with,
Ubuntu: sudo apt-get install redis-server
Cent OS: sudo yum install redis
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With