error
Rails.cache (Memcached に関連付けられている) を使用して、遅延ジョブでフックを使用してコントローラーに例外を渡そうとしています。
私のコントローラ メソッドには次のコード行があり、ジョブが正しく機能していることをテストしました。
Delayed::Job.enqueue(BuildDetail.new)
BuildDetail クラスは /lib/jobs/build_detail.rb ファイルで定義されています。
class BuildDetail
def perform
# do some stuff here
end
def success(job)
Rails.cache.write("job_done", true, :expires_in => 4.hours)
end
def error(job, exception)
Rails.cache.write("job_errors", exception, :expires_in => 4.hours)
end
次に、別のコントローラー メソッドで、次のようなことができるようにしたいと考えています。
def other_controller_method
job_errors = Rails.cache.read("job_errors")
case job_errors
when Timeout::Error
redirect_to reports_path
flash[:error] = "You have timed out!"
else
#...something else here
end
end
ただし、case ステートメントのキャッシュ キーからエラー メッセージにアクセスできないようです。私は何を間違っていますか?例外はどのような形式で保存されますか?