Sha256: 5b9e474e95c82e8bf83153a78149c25e6da8f50078ed23d4b6701c4de7209042
Contents?: true
Size: 1.03 KB
Versions: 3
Compression:
Stored size: 1.03 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 %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.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
3 entries across 3 versions & 1 rubygems