我有一组连接到各种 API 的 Adapter 类,等等。以下是每个适配器如何设置的简单通用示例:
class AmazonAdapter
include Sidekiq::Worker
def perform(id)
get_results_from_api(id)
end
end
class WalmartAdapter
include Sidekiq::Worker
def perform(id)
get_results_from_api(id)
end
end
所以一般来说,通过调用AmazonAdapter.new(500)
,它将连接到 API 并根据您作为 ID 传入的内容返回结果。这都是 Sidekiq 收集过程的一部分,并作为后台作业运行,因此当出现问题时,它不一定会抛出明显的异常或错误来提醒我。
当 API 未正确连接或抛出任何其他错误时,我想使用 AirBrake 的通知系统通知我,但不会停止收集过程或 sidekiq。我希望将错误处理和通知系统纳入主流。
我的一些想法是创建一个子类可以从中继承的 ParentClass,看起来类似于:
class Adapter
include Sidekiq::Worker
def perform(id)
begin
#execute subclass perform method
rescue Exception => e
Airbrake.notify(e)
end
end
end
但我不太确定解决这个问题的最佳方法。我真的可以在这方面使用一些建议或帮助,谢谢!