module LoopHard::SignalTrap

Public Class Methods

continue?(options = nil) click to toggle source

Returns false if a signal has been trapped. True otherwise.

# File lib/loop_hard/signal_trap.rb, line 7
def continue?(options = nil)
  if !@signal_trapped.nil?
    LoopHard.logger.info "Ending loop due to #{@signal_trapped} signal"
    return false
  end
  return true
end
reset_signal_trapped() click to toggle source

Reset the “signal” flag, so that loops keep looping.

# File lib/loop_hard/signal_trap.rb, line 31
def reset_signal_trapped
  @signal_trapped = nil
end
signal_trapped(sig) click to toggle source

Set the “signal” flag, if you've trapped a signal yourself, so that loops stop looping.

# File lib/loop_hard/signal_trap.rb, line 26
def signal_trapped(sig)
  @signal_trapped = sig
end
trap_signals(signals = ["INT", "TERM", "USR1"]) click to toggle source

Set up a signal trap for the signals specified (defaults to INT, TERM and USR1) Do not call this if you're using Sidekiq or any other library that handles their own signals!

# File lib/loop_hard/signal_trap.rb, line 17
def trap_signals(signals = ["INT", "TERM", "USR1"])
  signals.each do |sig|
    Signal.trap sig do
      signal_trapped(sig)
    end
  end
end