我不斷收到此錯誤(沒有任何回溯):Sidekiq:錯誤處理程序,在我的生產日誌拋出錯誤
!!! ERROR HANDLER THREW AN ERROR !!!
對於我的理解是指一個registered error handler是引發異常。
但是我的應用程序沒有任何自定義錯誤處理程序。
如何調試/解決此問題?
我的應用程序是這樣的:
class DeliveryJob
include Sidekiq::Worker
sidekiq_options queue: :deliveries, retry: 3
sidekiq_retry_in { |count| 20 * (3 ** count) }
sidekiq_retries_exhausted do |s|
# do something (some methods use Redis) ...
Rails.logger.tagged('delivery') do
Rails.logger.error "Sidekiq retries exhausted for ..."
end
end
def perform(id)
Notification.find(id).deliver
end
end
class Notification
def deliver
# do something that may fail
rescue => e
Rails.logger.tagged('delivery') do
Rails.logger.error "Delivery error for #{endpoint}: #{e.to_s}"
end
raise e
end
end
所以在我的日誌,我經常看到這樣的:
交貨錯誤https://example.com/path:SSL連接錯誤等
跟着:
!!! ERROR HANDLER THREW AN ERROR !!!
Delivery error
是好的,但我不明白爲什麼我從錯誤處理程序中得到一個錯誤。
'!!! ERROR HANDLER THREW AN ERROR !!!'可能是由於我從方法中的異常'救援'這一事實造成的,我記錄了錯誤並再次引發異常。我不知道爲什麼Sidekiq抱怨。 – collimarco