没有中间件的 Rails 异常通知



我有一个 Rails 4 应用程序,它完全由 rails runner 组成,而不是从 each gem 生成的 cron。

如果运行期间发生任何异常,我希望收到通知。exception_notification gem 仅作为机架中间件运行(仅限 Web 请求),因此它不处理 rails 运行器。

有什么想法吗?我希望通过电子邮件或 Slack 收到通知。

您可以在救援块中使用ExceptionNotifier.notify_exception来发送通知。

例如:

def rescue_exception(data)
  yield
rescue => e
  ExceptionNotifier.notify_exception(e, data: data)
end
every :hour do
  rescue_exception(runner: 'SomeModel.some_method') do
    runner "SomeModel.some_method"
  end
end

请参阅 https://github.com/smartinez87/exception_notification#background-notifications。使用data哈希传递有关上下文的其他信息。

最新更新