gpt4 book ai didi

ruby-on-rails-3 - 当 ActionMailer 遇到错误时,如何让 Delayed_Job 通知 Airbrake?

转载 作者:行者123 更新时间:2023-12-04 00:28:06 25 4
gpt4 key购买 nike

DelayedJob 文档提到了钩子(Hook),包括错误钩子(Hook),但仅在自定义 Job 子类的上下文中。

This similar question (没有答案)说向邮件程序类添加相同的钩子(Hook)不起作用。

有什么诀窍?

更新:

一般来说,我想看看如何为使用 object.delay.action() 触发的作业添加 Hook 。语法,我看不到指向 ____Job 的明显链接类(class)。

最佳答案

我也在寻找这个问题的解决方案,我找到了this gist .

我不知道它来自哪里(在 Google 上找到),但是,它似乎做得很好,很简单,并且似乎遵循了一个我什至不知道的 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

它将添加错误消息和有效负载,以便在 Airbrake 中可用。

关于ruby-on-rails-3 - 当 ActionMailer 遇到错误时,如何让 Delayed_Job 通知 Airbrake?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12683364/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com