Method: Cuboid::Processes::Instances#grid_spawn

Defined in:
lib/cuboid/processes/instances.rb

#grid_spawn(options = {}) ⇒ RPC::Client::Instance

Starts RPC::Server::Agent grid and returns a high-performance Instance.

Options Hash (options):

  • :grid_size (Integer) — default: 3

    Amount of Agents to spawn.



134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
# File 'lib/cuboid/processes/instances.rb', line 134

def grid_spawn(options = {} )
    options[:grid_size] ||= 3

    last_member = nil
    options[:grid_size].times do |i|
        last_member = Agents.spawn(
            peer: last_member ? last_member.url : last_member,
            pipe_id:   Utilities.available_port.to_s + Utilities.available_port.to_s
        )
    end

    info = nil
    info = last_member.spawn while !info && sleep( 0.1 )

    connect( info['url'], info['token'] )
end