Sha256: 4e2c02c3b174154ac0113972dcad9328428339d59efec00c51d921a5d6fb513d
Contents?: true
Size: 916 Bytes
Versions: 8
Compression:
Stored size: 916 Bytes
Contents
require_relative 'core_ext' require_relative 'processor' require_relative 'worker' module Upperkut class Manager attr_accessor :worker attr_reader :stopped, :logger, :concurrency, :processors def initialize(opts = {}) self.worker = opts.fetch(:worker).constantize @concurrency = opts.fetch(:concurrency, 1) @logger = opts.fetch(:logger, Upperkut::Logging.logger) @stopped = false @processors = [] end def run @concurrency.times do processor = Processor.new(self) @processors << processor processor.run end end def stop @stopped = true end def kill @processors.each(&:kill) end def notify_killed_processor(processor) @processors.delete(processor) return if @stopped processor = Processor.new(self) @processors << processor processor.run end end end
Version data entries
8 entries across 8 versions & 1 rubygems