1
私は、レールアプリケーションでdelayed_jobが失敗したときに特定の処理を行う方法を探しています。私はそれが可能であるかどうか、どのように私はそれのためのDelayedJobを構成することができますか分からない。
特定のジョブに対してerror
メソッドを追加できることがわかりましたが、すべてのジョブに似たものが欲しいです。delayed_jobが失敗したときに特定のメソッドを呼び出す
アイデア?
私は、レールアプリケーションでdelayed_jobが失敗したときに特定の処理を行う方法を探しています。私はそれが可能であるかどうか、どのように私はそれのためのDelayedJobを構成することができますか分からない。
特定のジョブに対してerror
メソッドを追加できることがわかりましたが、すべてのジョブに似たものが欲しいです。delayed_jobが失敗したときに特定のメソッドを呼び出す
アイデア?
私はDelayed::Plugin
を使用して、このチュートリアルに従うことをお勧めします:
http://www.salsify.com/blog/engineering/delayed-jobs-callbacks-and-hooks-in-rails
アプリ全体で任意のジョブの失敗のためのイベントをトリガーすることができるようになります。例えば
:
require 'airbrake'
require 'delayed_job'
class AirbrakePlugin < Delayed::Plugin
callbacks do |lifecycle|
lifecycle.around(:invoke_job) do |job, *args, &block|
begin
# Forward the call to the next callback in the callback chain
block.call(job, *args)
rescue Exception => error
::Airbrake.notify_or_ignore(
:error_class => error.class.name,
:error_message => "#{error.class.name}: #{error.message}",
:backtrace => error.backtrace,
:parameters => {
:failed_job => job.inspect
}
)
# Make sure we propagate the failure!
raise error
end
end
end