Class: ParallelCucumber::WorkerManager

Inherits:
Object
  • Object
show all
Defined in:
lib/parallel_cucumber/worker_manager.rb

Instance Method Summary collapse

Constructor Details

#initialize(options, logger) ⇒ WorkerManager

Returns a new instance of WorkerManager.



3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# File 'lib/parallel_cucumber/worker_manager.rb', line 3

def initialize(options, logger)
  @options = options
  @batch_size = options[:batch_size]
  @logger = logger
  @queue_connection_params = options[:queue_connection_params]
  @backlog = ParallelCucumber::Helper::Queue.new(@queue_connection_params)
  @queue_tracker = Tracker.new(@backlog)
  @back_up_worker_size = options[:backup_worker_count]
  @directed_queues = Hash.new do |hash, key|
    hash[key] = ParallelCucumber::Helper::Queue.new(@queue_connection_params, "_#{key}")
  end
  @workers = {}
  @unchecked_workers = Queue.new
  @healthy_workers = Queue.new
end

Instance Method Details

#inform_healthy(worker) ⇒ Object



29
30
31
# File 'lib/parallel_cucumber/worker_manager.rb', line 29

def inform_healthy(worker)
  @healthy_workers.enq(worker)
end

#inform_idle(worker) ⇒ Object



33
34
35
# File 'lib/parallel_cucumber/worker_manager.rb', line 33

def inform_idle(worker)
  @unchecked_workers.enq(worker)
end

#killObject



25
26
27
# File 'lib/parallel_cucumber/worker_manager.rb', line 25

def kill
  @current_thread.kill
end

#start(number_of_workers) ⇒ Object



19
20
21
22
23
# File 'lib/parallel_cucumber/worker_manager.rb', line 19

def start(number_of_workers)
  create_workers(number_of_workers)
  start_managing
  start_workers
end