Rails
delayed_job

delayed_job で backtrace を出す

More than 1 year has passed since last update.

Rails のジョブキュー機能として使える、delayed_job だが、標準ではエラーが発生した際に、一番最近のエラーメッセージしか情報をつかむことができない。log でも握りつぶらされた情報しか出てこない。

対処法

config/initializers/delayed_job_config.rb に以下を追加

if Rails.env == "development"
  class Delayed::Worker
    def handle_failed_job_with_loggin(job, error)
      handle_failed_job_without_loggin(job,error)
      Delayed::Worker.logger.error(error.message)
      Delayed::Worker.logger.error(error.backtrace.join("\n"))
    end 
    alias_method_chain :handle_failed_job, :loggin
  end 
end

これで、失敗時はログに backtrace が書き出されるようになる。

参考にした資料