Sha256: fbef208732775863fed3a920c447dd16def777ecfded4845d81d504081907659
Contents?: true
Size: 1.17 KB
Versions: 3
Compression:
Stored size: 1.17 KB
Contents
module SSHKit module Runner class Abstract attr_reader :hosts, :block def initialize(hosts, &block) @hosts = Array(hosts) @block = block end private def backend(host, &block) SSHKit.config.backend.new(host, &block) end end class Parallel < Abstract def execute threads = [] hosts.each do |host| threads << Thread.new(host) do |h| backend(host, &block).run end end threads.map(&:join) end end class Sequential < Abstract attr_writer :wait_interval def execute hosts.each do |host| backend(host, &block).run sleep wait_interval end end private def wait_interval @wait_interval ||= 2 end end class Group < Sequential attr_writer :group_size def execute hosts.each_slice(group_size).collect do |group_hosts| Parallel.new(group_hosts, &block).execute sleep wait_interval end.flatten end private def group_size @group_size ||= 2 end end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
sshkit-0.0.6 | lib/sshkit/runners/parallel.rb |
sshkit-0.0.5 | lib/sshkit/runners/parallel.rb |
sshkit-0.0.4 | lib/sshkit/runners/parallel.rb |