class Liebre::Runner

Constants

RETRY_INTERVAL

Attributes

engine[R]

Public Class Methods

new(engine: Liebre.engine) click to toggle source
# File lib/liebre/runner.rb, line 6
def initialize engine: Liebre.engine
  @engine = engine
end

Public Instance Methods

run(only: nil) click to toggle source
# File lib/liebre/runner.rb, line 10
def run only: nil
  setup_signals
  engine.start(only: only)
  sleep
rescue => e
  sleep(RETRY_INTERVAL)
  retry
end

Private Instance Methods

do_stop() click to toggle source
# File lib/liebre/runner.rb, line 26
def do_stop
  Thread.new { engine.stop }.join
end
setup_signals() click to toggle source
# File lib/liebre/runner.rb, line 21
def setup_signals
  Signal.trap("TERM") { do_stop; exit }
  Signal.trap("USR1") { do_stop; exit }
end