6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
# File 'lib/poollint/inspection_runner.rb', line 6
def call(connection, inspection_point)
configuration = PoolLint.configuration
inspector_class = Inspectors.for(connection)
return unless inspector_class
state = PoolLint.connection_state(connection)
establish_baseline(inspector_class, connection, state, configuration)
return unless configuration.inspection_point == inspection_point
return unless state.dirty?
return if rand >= configuration.check_probability
inspect_and_notify(connection, state, inspection_point, configuration, inspector_class)
rescue LeakDetected
raise
rescue StandardError => e
PoolLint.log_warning(
"inspection skipped after #{e.class}: #{e.message}"
)
end
|