class Trident::PoolManager

Attributes

name[R]
pools[R]
prefork[R]

Public Class Methods

new(name, pools, prefork) click to toggle source
# File lib/trident/pool_manager.rb, line 8
def initialize(name, pools, prefork)
  logger.info "Initializing pool manager"
  procline "manager-#{name}", "(initializing)"
  @name = name
  @pools = pools
  @prefork = prefork
end

Public Instance Methods

start() click to toggle source
# File lib/trident/pool_manager.rb, line 16
def start
  logger.info "Starting pools"
  load_handlers if prefork
  pools.each do |pool|
    pool.start
  end
  procline "manager-#{name}", "managing #{procline_display}"
end
stop_forcefully() click to toggle source
# File lib/trident/pool_manager.rb, line 25
def stop_forcefully
  stop('stop_forcefully')
end
stop_gracefully() click to toggle source
# File lib/trident/pool_manager.rb, line 29
def stop_gracefully
  stop('stop_gracefully')
end
update() click to toggle source
# File lib/trident/pool_manager.rb, line 43
def update
  pools.each do |pool|
    pool.update
  end
  procline "manager-#{name}", "managing #{procline_display}"
end
wait() click to toggle source

waits for children to exit

# File lib/trident/pool_manager.rb, line 34
def wait
  logger.info "Waiting for pools to exit"
  procline "manager-#{name}", "waiting #{procline_display}"
  pools.each do |pool|
    pool.wait
  end
  :break
end

Private Instance Methods

load_handlers() click to toggle source
# File lib/trident/pool_manager.rb, line 56
def load_handlers
  procline "manager-#{name}", "preforking #{procline_display}"
  pools.each do |pool|
    pool.handler.load
  end
end
procline_display() click to toggle source
# File lib/trident/pool_manager.rb, line 52
def procline_display
  pools.collect {|pool| "#{pool.name}#{pool.workers.to_a.collect(&:pid)}" }.join(" ")
end
stop(action) click to toggle source

tells all children to stop using action

# File lib/trident/pool_manager.rb, line 64
def stop(action)
  logger.info "Stopping pools: #{action}"
  procline "manager-#{name}", "stopping #{procline_display}"
  pools.each do |pool|
    pool.stop(action)
  end
  :break
end