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