Sha256: 18c7146c5e3e5daacd4e632e134eb291ff1738171ea8d9b154439c7fa62a54a6
Contents?: true
Size: 795 Bytes
Versions: 1
Compression:
Stored size: 795 Bytes
Contents
module Workers class Pool include Workers::Helpers DEFAULT_POOL_SIZE = 20 def initialize(options = {}) @size = options[:size] || Workers::Pool::DEFAULT_POOL_SIZE @logger = Workers::LogProxy.new(options[:logger]) @input_queue = Queue.new @workers = [] @size.times { @workers << Workers::Worker.new(:input_queue => @input_queue) } end def perform(options = {}, &block) enqueue(:perform, block) return nil end def shutdown(options = {}, &block) @size.times { enqueue(:shutdown, block) } return nil end def join(max_wait = nil) return @workers.map { |w| w.join(max_wait) } end private def enqueue(command, data) @input_queue.push(Event.new(command, data)) end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
workers-0.0.1 | lib/workers/pool.rb |