gpt4 book ai didi

ruby-on-rails - 使用 `rails runner` 时如何捕获错误并将它们发送到 Bugsnag?

转载 作者:数据小太阳 更新时间:2023-10-29 08:38:19 26 4
gpt4 key购买 nike

我们在服务器中运行多个 cron 任务,我们使用 rails runner 启动它们,如下所示:

rails runner 'MyTask.run'

其中 MyTask 是项目中的一个类。问题是,我们使用 Bugsnag在任何事情失败时处理错误。当我们运行 rake 任务时,Bugsnag 会保存错误并将它们列在他们的网站上。但在使用 rails runner 时不会发生这种情况。发生这种情况时,如何配置 Rails 将错误发送给 Bugsnag?

最佳答案

Rails runner 很难配置或定制。那是因为它实际上是一个带有 this main body 的脚本。 :

if code_or_file.nil?
$stderr.puts "Run '#{$0} -h' for help."
exit 1
elsif File.exist?(code_or_file)
$0 = code_or_file
Kernel.load code_or_file
else
eval(code_or_file, binding, __FILE__, __LINE__)
end

如您所见,它只是对您发送的代码执行 eval,因此没有包装器,没有您可以扩展的类,基本上没有您可以配置的内容。最好创建一个 rake 任务以与 runner 相同的方式执行操作,但这次是在一个由 Rake 控制的环境中,因此允许您配置所需的一切:

desc 'Wraps a runner command with rake'
task :runner, [:command] => :environment do |t, args|
eval(args[:command])
end

然后,你调用它使用

rake 'runner["MyTask.run"]'

这将以与使用 rails runner 非常相似的方式运行任务,但是在 rake 的上下文中(包括使用 Bugsnag)。

关于ruby-on-rails - 使用 `rails runner` 时如何捕获错误并将它们发送到 Bugsnag?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20935672/

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