Class: Gru::WorkerManager

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

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(adapter) ⇒ WorkerManager

Returns a new instance of WorkerManager.



5
6
7
# File 'lib/gru/worker_manager.rb', line 5

def initialize(adapter)
  @adapter = adapter
end

Instance Attribute Details

#adapterObject (readonly)

Returns the value of attribute adapter.



3
4
5
# File 'lib/gru/worker_manager.rb', line 3

def adapter
  @adapter
end

Instance Method Details

#adjust_workersObject



25
26
27
28
29
30
31
32
33
34
35
# File 'lib/gru/worker_manager.rb', line 25

def adjust_workers
  result = {}
  expire_dead_cluster_members
  add = provision_workers
  remove = expire_workers
  keys = add.keys + remove.keys
  keys.uniq.each do |key|
    result[key] = add.fetch(key) {0} + remove.fetch(key) {0}
  end
  result
end

#expire_dead_cluster_membersObject



9
10
11
# File 'lib/gru/worker_manager.rb', line 9

def expire_dead_cluster_members
  @adapter.release_presumed_dead_worker_hosts
end

#expire_workersObject



21
22
23
# File 'lib/gru/worker_manager.rb', line 21

def expire_workers
  @adapter.expire_workers
end

#provision_workersObject



17
18
19
# File 'lib/gru/worker_manager.rb', line 17

def provision_workers
  @adapter.provision_workers
end

#register_workersObject



13
14
15
# File 'lib/gru/worker_manager.rb', line 13

def register_workers
  @adapter.set_worker_counts
end

#release_workersObject



37
38
39
# File 'lib/gru/worker_manager.rb', line 37

def release_workers
  @adapter.release_workers
end