gpt4 book ai didi

ruby-on-rails - 我如何将 Hoptoad 与 DelayedJob 和 DaemonSpawn 集成?

转载 作者:数据小太阳 更新时间:2023-10-29 07:13:16 27 4
gpt4 key购买 nike

我一直很高兴地使用 DelayedJob 习惯用法:

foo.send_later(:bar)

这会调用 DelayedJob 进程中对象 foo 的方法 bar。

我一直在使用 DaemonSpawn 在我的服务器上启动 DelayedJob 进程。

但是...如果 foo 抛出异常,Hoptoad 不会捕获它。

这是任何这些包中的错误...还是我需要更改某些配置...或者我是否需要在 DS 或 DJ 中插入一些异常处理来调用 Hoptoad 通知程序?


回应下面的第一条评论。

class DelayedJobWorker < DaemonSpawn::Base
def start(args)
ENV['RAILS_ENV'] ||= args.first || 'development'
Dir.chdir RAILS_ROOT
require File.join('config', 'environment')

Delayed::Worker.new.start
end

最佳答案

尝试 monkeypatching Delayed::Worker#handle_failed_job :

# lib/delayed_job_airbrake.rb

module Delayed
class Worker

protected

def handle_failed_job_with_airbrake(job, error)
say "Delayed job failed -- logging to Airbrake"
HoptoadNotifier.notify(error)
handle_failed_job_without_airbrake(job, error)
end

alias_method_chain :handle_failed_job, :airbrake

end
end

这对我有用。

(在使用 delayed_job 2.1.4 和 hoptoad_notifier 2.4.11 的 Rails 3.0.10 应用中)

关于ruby-on-rails - 我如何将 Hoptoad 与 DelayedJob 和 DaemonSpawn 集成?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1276164/

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