我有一个 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
哈希传递有关上下文的其他信息。