Module: LoopHard::SignalTrap
- Defined in:
- lib/loop_hard/signal_trap.rb
Class Method Summary collapse
-
.continue?(options = nil) ⇒ Boolean
Returns false if a signal has been trapped.
-
.reset_signal_trapped ⇒ Object
Reset the “signal” flag, so that loops keep looping.
-
.signal_trapped(sig) ⇒ Object
Set the “signal” flag, if you’ve trapped a signal yourself, so that loops stop looping.
-
.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!.
Class Method Details
.continue?(options = nil) ⇒ Boolean
Returns false if a signal has been trapped. True otherwise.
7 8 9 10 11 12 13 |
# File 'lib/loop_hard/signal_trap.rb', line 7 def continue?( = nil) if !@signal_trapped.nil? LoopHard.logger.info "Ending loop due to #{@signal_trapped} signal" return false end return true end |
.reset_signal_trapped ⇒ Object
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 |