Sidekiq en Heroku

Guía básica para agregar Sidekiq a tu proyecto de Ruby on Rails alojado en Heroku

Paso 1: Agrega Redis

Sidekiq necesita Redis para funcionar. En Heroku, puedes agregar el addon Redis To Go:

heroku addons:create redistogo:nano

Paso 2: Agrega las gemas

Agrega las siguientes gemas a tu Gemfile:

gem 'redis'
gem 'sidekiq'

Ejecuta bundle install:

bundle install

Paso 3: Configura el Procfile

Agrega un worker de Sidekiq a tu Procfile:

web: bundle exec puma -C config/puma.rb
worker: bundle exec sidekiq -e production

Paso 4: Configura el entorno

En tu archivo de configuración de entorno (config/environments/production.rb o config/application.rb), configura Active Job para usar Sidekiq:

config.active_job.queue_adapter = :sidekiq

Paso 5: Configura las rutas de Sidekiq (opcional)

Si deseas acceder al panel de Sidekiq desde tu navegador, agrega lo siguiente a tu archivo config/routes.rb. Es recomendable protegerlo con autenticación (ejemplo con Devise):

require 'sidekiq/web'

authenticate :user, ->(user) { user.admin? } do
  mount Sidekiq::Web => '/sidekiq'
end

Paso 6: Escala tu worker

No olvides escalar el worker en Heroku:

heroku ps:scale worker=1
Sidekiq y Heroku