Edited at

Heroku 上で Rails に非同期処理の sidekiq を導入する

More than 5 years have passed since last update.


基本セットアップ

Gemfile

gem 'sidekiq'

アプリ上では

obj.foo_process

obj.delay.foo_process

という感じで実装すれば遅延処理になる


管理Webviewを設定

管理WebViewにはBasic認証をかける

routes.rb

require 'sidekiq/web'

Sidekiq::Web.use Rack::Auth::Basic do |username, password|
username == 'basicuser' && password == 'basicpass'
end
mount Sidekiq::Web => '/sidekiq'

Heroku上ではCSSの読み込みが失敗するのを修正

config/envirments/production.rb

config.action_dispatch.x_sendfile_header = 'X-Accel-Redirect'


開発環境等では非同期にしない

config/initializer/sidekiq.rb

unless Rails.env.production?

require 'sidekiq/testing/inline'
end


Heroku上でRedisを入れる

heroku addons:add redistogo:nano


ローカル環境

Macでのセットアップ

brew install redis