parent
e09e225e5c
commit
e9ecbca70d
@ -1,13 +1,24 @@ |
|||||||
# frozen_string_literal: true |
# frozen_string_literal: true |
||||||
|
|
||||||
class SidekiqErrorHandler |
class SidekiqErrorHandler |
||||||
|
BACKTRACE_LIMIT = 3 |
||||||
|
|
||||||
def call(*) |
def call(*) |
||||||
yield |
yield |
||||||
rescue Mastodon::HostValidationError |
rescue Mastodon::HostValidationError |
||||||
# Do not retry |
# Do not retry |
||||||
|
rescue => e |
||||||
|
limit_backtrace_and_raise(e) |
||||||
ensure |
ensure |
||||||
socket = Thread.current[:statsd_socket] |
socket = Thread.current[:statsd_socket] |
||||||
socket&.close |
socket&.close |
||||||
Thread.current[:statsd_socket] = nil |
Thread.current[:statsd_socket] = nil |
||||||
end |
end |
||||||
|
|
||||||
|
private |
||||||
|
|
||||||
|
def limit_backtrace_and_raise(e) |
||||||
|
e.set_backtrace(e.backtrace.first(BACKTRACE_LIMIT)) |
||||||
|
raise e |
||||||
|
end |
||||||
end |
end |
||||||
|
Loading…
Reference in new issue