herokuでworker dyno(jobサーバー)を建て、railsアプリのsidekiqを動かす

手順

heroku管理画面から「heroku redis」を追加する

f:id:spreadthec0ntents:20210815085937p:plain

sidekiqをredisに接続する

config/initializes/sidekiq.rbに以下を記述する。

Sidekiq.configure_server do |config|
  config.redis = { url: ENV.fetch('REDIS_URL', 'redis://localhost:6379') }
end

Sidekiq.configure_client do |config|
  config.redis = { url: ENV.fetch('REDIS_URL', 'redis://localhost:6379')}
end

railsプロジェクト直下に「Procfile」を作成し各サーバーの起動設定を記述する

web: bin/rails server -p $PORT -e $RAILS_ENV
worker: bundle exec sidekiq -c 3 -q default -q mailers

上記の設定をデプロイ後、herokuにworker dynoを作成する

heroku ps:scale web=1 worker=1 --app herokuのアプリ名

参考

yutojp.com