TERMをトラップしてQUITを送信した後のHerokuでのユニコーン終了タイムアウト
ユニコーンとsidekiqを実行しているHerokuアプリのR12終了タイムアウトエラーを受け取ります。これらのエラーは、1日に1〜2回、展開するたびに発生します。ユニコーンが正しく応答するには、Herokuからのシャットダウン信号を変換する必要があることを理解していますが、以下のユニコーン設定で変換したと思いました。 worker_processes 3 timeout 30 preload_app true before_fork do |server, worker| Signal.trap 'TERM' do puts "Unicorn master intercepting TERM and sending myself QUIT instead. My PID is #{Process.pid}" Process.kill 'QUIT', Process.pid end if defined?(ActiveRecord::Base) ActiveRecord::Base.connection.disconnect! Rails.logger.info('Disconnected from ActiveRecord') end end after_fork do |server, worker| Signal.trap 'TERM' do puts "Unicorn worker …