1234567891011121314151617181920212223242526 |
- # frozen_string_literal: true
- class SidekiqErrorHandler
- BACKTRACE_LIMIT = 3
- def call(*)
- yield
- rescue Mastodon::HostValidationError
- # Do not retry
- rescue => e
- limit_backtrace_and_raise(e)
- ensure
- socket = Thread.current[:statsd_socket]
- socket&.close
- Thread.current[:statsd_socket] = nil
- end
- private
- # rubocop:disable Naming/MethodParameterName
- def limit_backtrace_and_raise(e)
- e.set_backtrace(e.backtrace.first(BACKTRACE_LIMIT))
- raise e
- end
- # rubocop:enable Naming/MethodParameterName
- end
|