Class: SSHKit::Custom::Runner::Group
Instance Attribute Summary collapse
Attributes inherited from Abstract
#backends, #options
Instance Method Summary
collapse
Methods inherited from Abstract
#active_backend, active_backend, active_backend=, #active_backend=, #apply_to_bck, create_runner, #do_wait, #initialize, scope, scope_storage, #send_cmd
Instance Attribute Details
#group_size ⇒ Object
17
18
19
|
# File 'lib/sshkit/custom/runner/group.rb', line 17
def group_size
@group_size ||= options[:limit] || 2
end
|
Instance Method Details
#apply_block_to_bcks(&block) ⇒ Object
7
8
9
10
11
12
13
14
15
|
# File 'lib/sshkit/custom/runner/group.rb', line 7
def apply_block_to_bcks(&block)
backends.each_slice(group_size).map do |group_backends|
exec_parallel(group_backends, &block)
do_wait
end.flatten
end
|
#exec_parallel(group, &block) ⇒ Object
21
22
23
24
25
26
|
# File 'lib/sshkit/custom/runner/group.rb', line 21
def exec_parallel(group, &block)
use_runner.call(options).tap do |runner|
runner.backends = group
runner.apply_block_to_bcks(&block)
end
end
|
#use_runner ⇒ Object
28
29
30
|
# File 'lib/sshkit/custom/runner/group.rb', line 28
def use_runner
->(options) { Parallel.new(options) }
end
|