class RocketJob::Subscribers::Server
Attributes
supervisor[R]
Public Class Methods
new(supervisor)
click to toggle source
# File lib/rocket_job/subscribers/server.rb, line 8 def initialize(supervisor) @supervisor = supervisor end
Public Instance Methods
kill(server_id: nil, name: nil, wait_timeout: 5)
click to toggle source
# File lib/rocket_job/subscribers/server.rb, line 12 def kill(server_id: nil, name: nil, wait_timeout: 5) return unless my_server?(server_id, name) supervisor.synchronize do Supervisor.shutdown! supervisor.logger.info("Stopping Pool") supervisor.worker_pool.stop unless supervisor.worker_pool.living_count.zero? supervisor.logger.info("Giving pool #{wait_timeout} seconds to terminate") sleep(wait_timeout) end supervisor.logger.info("Kill Pool") supervisor.worker_pool.kill end logger.info "Killed" end
pause(server_id: nil, name: nil)
click to toggle source
# File lib/rocket_job/subscribers/server.rb, line 31 def pause(server_id: nil, name: nil) return unless my_server?(server_id, name) supervisor.synchronize { supervisor.server.pause! if supervisor.server.may_pause? } Supervisor.event! logger.info "Paused" end
refresh(server_id: nil, name: nil)
click to toggle source
# File lib/rocket_job/subscribers/server.rb, line 39 def refresh(server_id: nil, name: nil) return unless my_server?(server_id, name) Supervisor.event! logger.info "Refreshed" end
resume(server_id: nil, name: nil)
click to toggle source
# File lib/rocket_job/subscribers/server.rb, line 46 def resume(server_id: nil, name: nil) return unless my_server?(server_id, name) supervisor.synchronize { supervisor.server.resume! if supervisor.server.may_resume? } Supervisor.event! logger.info "Resumed" end
stop(server_id: nil, name: nil)
click to toggle source
# File lib/rocket_job/subscribers/server.rb, line 54 def stop(server_id: nil, name: nil) return unless my_server?(server_id, name) Supervisor.shutdown! logger.info "Shutdown" end
thread_dump(server_id: nil, name: nil)
click to toggle source
# File lib/rocket_job/subscribers/server.rb, line 61 def thread_dump(server_id: nil, name: nil) return unless my_server?(server_id, name) logger.info "Thread dump" supervisor.worker_pool.log_backtraces end
Private Instance Methods
my_server?(server_id, name)
click to toggle source
# File lib/rocket_job/subscribers/server.rb, line 70 def my_server?(server_id, name) return true if server_id.nil? && name.nil? return true if supervisor.server.name == name server_id.to_s == supervisor.server.id.to_s end