17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
# File 'lib/txnap/subscribers/sql_subscriber.rb', line 17
def call(_name, start, finish, _id, payload)
connection = payload[:connection]
return unless connection
case SqlEventClassifier.classify(payload)
when :cache, :schema
nil
when :begin
start_trace(connection, start, finish, payload)
when :commit, :rollback
registry.fetch(connection)&.record_terminal(start: start, finish: finish, sql: payload[:sql])
when :transaction
registry.fetch(connection)&.record_transaction(start: start, finish: finish, sql: payload[:sql])
when :sql
record_sql(connection, start, finish, payload)
end
rescue => error
Txnap.warn("sql subscriber failed: #{error.class}: #{error.message}")
end
|