Search code examples
ruby-on-railsruby-on-rails-4sidekiqnitrousio

Configuring Sidekiq with Nitrous.io and Rails


I'm trying to implement a background worker for payments using Sidekiq. I'm using nitrous.io for development and this is probably causing some problems when connecting to redis.

When I try to connect I get the following error:

Redis::CannotConnectError (Error connecting to Redis on 127.0.0.1:6379 (ECONNREFUSED)):

I assumed that this is the default (localhost).

I've tried to add the following initializer, sidekiq.rb

Sidekiq.configure_server do |config|
config.redis = { :url => 'redis://test-box-123456.euw1-2.nitrousbox.com:6379/0'}
end

Sidekiq.configure_client do |config|
config.redis = { :url => 'redis://test-box-123456.euw1-2.nitrousbox.com:6379/0'}
end

This however, results in the following error:

Redis::ProtocolError ( Got '<' as initial reply byte. If you're in a forking environment,       such as Unicorn, you need to connect to Redis after forking. ):

I haven't worked with background sidekiq/redis before, and I cannot figure out what exactly is going wrong here. How should I configure this connection in both development (nitrous) and production (heroku)?


Solution

  • I was getting the same error locally and figured out that this was because I did not start redis server- type in a new cmd window:

    redis-server
    

    Hope that helps at least when testing locally.