module RocketJob::Supervisor::Shutdown
Public Class Methods
event!()
click to toggle source
An event has occured
# File lib/rocket_job/supervisor/shutdown.rb, line 22 def self.event! @event.set end
register_signal_handlers()
click to toggle source
Register handlers for the various signals Term:
Perform clean shutdown
# File lib/rocket_job/supervisor/shutdown.rb, line 39 def self.register_signal_handlers Signal.trap "SIGTERM" do Thread.new do shutdown! message = "Shutdown signal (SIGTERM) received. Will shutdown as soon as active jobs/slices have completed." logger.info(message) end end Signal.trap "INT" do Thread.new do shutdown! message = "Shutdown signal (INT) received. Will shutdown as soon as active jobs/slices have completed." logger.info(message) end end rescue StandardError logger.warn "SIGTERM handler not installed. Not able to shutdown gracefully" end
shutdown!()
click to toggle source
Set shutdown indicator for this server process
# File lib/rocket_job/supervisor/shutdown.rb, line 11 def self.shutdown! @shutdown.set event! end
shutdown?()
click to toggle source
Returns [true|false] whether the shutdown indicator has been set for this server process
# File lib/rocket_job/supervisor/shutdown.rb, line 17 def self.shutdown? @shutdown.set? end
wait_for_event(timeout = nil)
click to toggle source
Returns [true|false] whether the shutdown indicator was set before the timeout was reached
# File lib/rocket_job/supervisor/shutdown.rb, line 27 def self.wait_for_event(timeout = nil) @event.wait(timeout) @event.reset end