Sha256: 1d008a6e87a7cee70069acebeb9bdcaf64bc5192fbed5c81a253d349f4dc9d08
Contents?: true
Size: 1.16 KB
Versions: 1
Compression:
Stored size: 1.16 KB
Contents
module Daemonizer class WorkerPool attr_reader :name, :logger def initialize(name, pm, &blk) @name = name @pm = pm @worker_block = blk @workers = [] @logger = @pm.logger end def shutdown? @pm.shutdown? end def start_workers(number) logger.debug "Creating #{number} workers for #{name} pool..." number.times do |i| @workers << Worker.new(name, @pm, i+1, &@worker_block) end end def check_workers logger.debug "Checking loop #{name} workers..." @workers.each do |worker| next if worker.running? || worker.shutdown? logger.warn "Worker #{worker.name} is not running. Restart!" worker.run end end def wait_workers running = 0 @workers.each do |worker| next unless worker.running? running += 1 logger.debug "Worker #{name} is still running (#{worker.pid})" end return running end def stop_workers(force) logger.debug "Stopping #{name} pool workers..." @workers.each do |worker| next unless worker.running? worker.stop(force) end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
daemonizer-0.1.6 | lib/daemonizer/worker_pool.rb |