Sha256: a49cf8ae9565eba965445366269758519971dac91e68020851659dfec00bec50
Contents?: true
Size: 1.06 KB
Versions: 8
Compression:
Stored size: 1.06 KB
Contents
# vim:fileencoding=utf-8 module Resque module Scheduler module SignalHandling attr_writer :signal_queue def signal_queue @signal_queue ||= [] end # For all signals, set the shutdown flag and wait for current # poll/enqueing to finish (should be almost instant). In the # case of sleeping, exit immediately. def register_signal_handlers (Signal.list.keys & %w(INT TERM USR1 USR2 QUIT)).each do |sig| trap(sig) do signal_queue << sig # break sleep in the primary scheduler thread, alowing # the signal queue to get processed as soon as possible. @th.wakeup if @th && @th.alive? end end end def handle_signals loop do sig = signal_queue.shift break unless sig log! "Got #{sig} signal" case sig when 'INT', 'TERM', 'QUIT' then shutdown when 'USR1' then print_schedule when 'USR2' then reload_schedule! end end end end end end
Version data entries
8 entries across 8 versions & 4 rubygems