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 が書き出されるようになる。