Module: LoopHard::SignalTrap

Defined in:
lib/loop_hard/signal_trap.rb

Class Method Summary collapse

Class Method Details

.continue?(options = nil) ⇒ Boolean

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

Returns:

  • (Boolean)


7
8
9
10
11
12
13
# 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_trappedObject

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



31
32
33
# File 'lib/loop_hard/signal_trap.rb', line 31

def reset_signal_trapped
  @signal_trapped = nil
end

.signal_trapped(sig) ⇒ Object

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



26
27
28
# File 'lib/loop_hard/signal_trap.rb', line 26

def signal_trapped(sig)
  @signal_trapped = sig
end

.trap_signals(signals = ["INT", "TERM", "USR1"]) ⇒ Object

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!



17
18
19
20
21
22
23
# 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