Jor*_*ein 12 actionmailer delayed-job ruby-on-rails-3
DelayedJob文档提到了钩子,包括一个错误钩子,但只在自定义Job子类的上下文中.
这个类似的问题(没有答案)说,在邮件程序类中添加相同的钩子不起作用.
有什么诀窍?
更新:
一般来说,我想看看如何为使用object.delay.action()语法触发的作业添加钩子,我没有看到明显的____Job类链接.
rch*_*ier 20
我也在寻找这个问题的解决方案,我找到了这个要点.
我不知道它来自哪里(在谷歌上发现),但好吧,它似乎做得很好,很简单,似乎遵循一个我甚至不知道的DelayedJob的插件系统......
这是一个使用以前的猴子补丁代码部分的轻微改进:
# https://gist.github.com/2223758
# modified
module Delayed
module Plugins
class Airbrake < Plugin
module Notify
def error(job, error)
::Airbrake.notify_or_ignore(
:error_class => error.class.name,
:error_message => "#{error.class.name}: #{error.message}",
:parameters => {
:failed_job => job.inspect,
}
)
super if defined?(super)
end
end
callbacks do |lifecycle|
lifecycle.before(:invoke_job) do |job|
payload = job.payload_object
payload = payload.object if payload.is_a? Delayed::PerformableMethod
payload.extend Notify
end
end
end
end
end
Delayed::Worker.plugins << Delayed::Plugins::Airbrake
Run Code Online (Sandbox Code Playgroud)
它将添加错误的消息和有效负载,以便它可以在Airbrake中使用.
| 归档时间: |
|
| 查看次数: |
3422 次 |
| 最近记录: |