Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Rails: Starting Sidekiq on Heroku

I'm having a problem getting Sidekiq up and running on my Heroku deployed Rails app. I have my app working fine in development (and on Heroku without Sidekiq).

I created a Procfile with:

worker: bundle exec sidekiq 

If I run heroku ps, the only process I see is web.1.

Should I see one for Sidekiq?

I do get an error:

Redis::CannotConnectError (Error connecting to Redis on localhost:6379) in my Heroku logs.

UPDATE: Found I probably needed heroku addons:add redistogo. Still not working. I feel I'm missing some basic configuration.

Is there something I need to do to get Redis up and running for my Heroku app?

I've been using Redis/Sidekiq for about a day, so this is new to me.

Thanks!

Greg

like image 591
Greg Rogers Avatar asked Dec 07 '12 20:12

Greg Rogers


People also ask

How do I start Sidekiq on Heroku?

Install Heroku Redis Add-on Go to the Resources tab and in the Add-ons section type Heroku Redis in the search field. It will appear in the search list. Click on it and a modal will show up to install it, click in the Provision button to start the installation.

How do I start Sidekiq Rails?

To run sidekiq, you will need to open a terminal, navigate to your application's directory, and start the sidekiq process, exactly as you would start a web server for the application itself. When the command executes you will see a message that sidekiq has started.

Does Sidekiq need Redis?

Sidekiq uses simple and efficient background processing. Sidekiq is supported by Redis as a job management tool to process thousands of jobs in a second. Follow the steps to add Sidekiq and Redis to your existing application.


2 Answers

No you do not need any config with Heroku for Sidekiq, just add the RedisToGo plugin and you're on. Do not forget to attribute at least 1 worker to your app in your Heroku config.

Here is my default Procfile:

web: bundle exec thin start -p $PORT worker: bundle exec sidekiq -c 5 -v 
like image 74
gdurelle Avatar answered Sep 20 '22 22:09

gdurelle


It's worth checking if the sidekiq process is really started with this command:

heroku ps 

If there's no worker, then you might need to run this command:

heroku ps:scale worker+1 

It turns out that there's a bug in the web UI in that some team members were not allowed to increase the number of workers from 0 to 1, even though the UI seemed to show that!

like image 28
justingordon Avatar answered Sep 20 '22 22:09

justingordon