class SSHKit::Custom::Runner::Group
A runner which executes all commands in groups.
Attributes
group_size[W]
Public Instance Methods
apply_block_to_bcks(&block)
click to toggle source
Executes all commands in batches of size :group_size @yields the actual host
# File lib/sshkit/custom/runner/group.rb, line 11 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)
click to toggle source
@api private
# File lib/sshkit/custom/runner/group.rb, line 25 def exec_parallel(group, &block) use_runner.call(options).tap do |runner| runner.backends = group runner.apply_block_to_bcks(&block) end end
group_size()
click to toggle source
@api private
# File lib/sshkit/custom/runner/group.rb, line 20 def group_size @group_size ||= options[:limit] || 2 end
use_runner()
click to toggle source
@api private
# File lib/sshkit/custom/runner/group.rb, line 33 def use_runner ->(options) { Parallel.new(options) } end