9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
# File 'lib/active_record_postgres_recovery/sidekiq_middleware.rb', line 9
def call(worker, job, queue)
yield
rescue StandardError => e
raise unless ActiveRecordPostgresRecovery.configuration.enabled?
raise unless Handler.db_connectivity_error?(e)
clear_action = if Handler.read_only_transaction_error?(e)
Handler.clear_failover_connections!
else
Handler.clear_all_connections!
end
Handler.report_attempted_recovery(
context: sidekiq_context(worker, job, queue),
error: e,
source: SOURCE,
clear_action: clear_action
)
raise
end
|