ive been trying to get resque to work with heroku. i can successfully get it to work in development mode, however when i try pushing to heroku i get
Errno::ECONNREFUSED (Connection refused - Unable to connect to Redis on 127.0.0.1:6379):
i then read and followed http://blog.redistogo.com/2010/07/26/resque-with-redis-to-go/
i put the configurations listed in the site but got the following error
SocketError (getaddrinfo: nodename nor servname provided, or not known):
i put in my initializers/resque.rb
Resque.after_fork = Proc.new { ActiveRecord::Base.establish_connection }
ENV["redis://redistogo:11111111111111111@lab.redistogo.com:9254/"] ||= "redis://heroku_username:heroku_password@host:9254/"
uri = URI.parse(ENV["redis://redistogo:1111111111111111@lab.redistogo.com:9254/"])
Resque.redis = Redis.new(:host => uri.host, :port => uri.port, :password => uri.password)
however it throws the error mentioned above. on my dev mode now, i get the error as well.
i tried using my heroku username (im using the add on from heroku), putting my password to heroku, and changing the port to 9254. however i keep getting the socket error now. what am i doing wrong?
help would be much appreciated. thank you
UPDATE.
@kevin
i tried
uri = URI.parse(ENV["my_url_string"] || "redis://localhost:9254/" )
REDIS = Redis.new(:host => uri.host, :port => uri.port, :password => uri.password)
in a initializer/redis.rb as well but i get the following error
Errno::ECONNREFUSED (Connection refused - Unable to connect to Redis on 127.0.0.1:6379):
are the numbers in the error, ie 127.0.0.1:6379 significant? ive checked my redis gui app and also from heroku config that my port number is 9254
REDISTOGO_URL => redis://redistogo:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx@lab.redistogo.com:9254/
did you have any other configuration settings? thanks for helping!
FINAL UPDATE.
i fixed it. i can't believe it! my complete solution is
uri = URI.parse(ENV["REDISTOGO_URL"])
REDIS = Redis.new(:host => uri.host, :port => uri.port, :password => uri.password)
Resque.redis = REDIS
verbatim. it works without explicitly setting the url because i guess heroku tries to set it up for me already
I got the same thing, so, basically Sidekiq was not grabbing the REDISCLOUD_URL from vars, it was grabbing REDIS_PROVIDER.
It worked like a charm.
For my setup I have
/config/initializers/redis.rb
with these lines:My
REDISTOGO_URL
is defined in my heroku configuration. You should be able to validate that by typing:You'll see in the output the value for
REDISTOGO_URL
You should copy your
REDISTOGO_URL
directly from Redis To Go. You find it in by going to the instance in heroku and clicking on Add Ons -> Redis To Go.Here are a couple pointers:
i fixed it. i can't believe it! my complete solution is
verbatim. it works without explicitly setting the url because i guess heroku tries to set it up for me already