Sha256: f10e503b48a53249fbaf052c2e404cc2a5dd556d2e8474b37cc4563a3f90f2c7
Contents?: true
Size: 1.07 KB
Versions: 2
Compression:
Stored size: 1.07 KB
Contents
# vim:fileencoding=utf-8 module ResqueAdmin 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_admin 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
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
resque-admin-scheduler-1.3.0 | lib/resque/scheduler_admin/signal_handling.rb |
resque-admin-scheduler-4.3.0 | lib/resque/scheduler_admin/signal_handling.rb |