Class: Kaisoku::Preload::FallbackRunner

Inherits:
Object
  • Object
show all
Defined in:
lib/kaisoku/preload/fallback_runner.rb

Instance Method Summary collapse

Constructor Details

#initialize(preload_server:) ⇒ FallbackRunner

Returns a new instance of FallbackRunner.



6
7
8
# File 'lib/kaisoku/preload/fallback_runner.rb', line 6

def initialize(preload_server:)
  @preload_server = preload_server
end

Instance Method Details

#runObject



10
11
12
13
14
15
16
17
18
19
20
21
22
# File 'lib/kaisoku/preload/fallback_runner.rb', line 10

def run(&)
  return yield if @preload_server.disabled?

  preload_result = @preload_server.run(&)
  return preload_result unless suspicious_result?(preload_result)

  cold_result = yield
  disable_if_different(preload_result, cold_result)
  cold_result
rescue StandardError => e
  @preload_server.disable!("preload failed: #{e.class}: #{e.message}")
  yield
end