Method: Buffet::Master#run_worker

Defined in:
lib/buffet/master.rb

#run_worker(slave) ⇒ Object



65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
# File 'lib/buffet/master.rb', line 65

def run_worker slave
  time = Benchmark.measure do
    begin
      prepare_slave slave
    rescue CommandError => ex
      slave_prepare_failed slave, ex
    rescue Exception => ex
      stop_run ex
    else
      begin
        run_slave slave
      rescue Exception => ex
        stop_run ex
      end
    end
  end.real

  @lock.synchronize do
    @slaves_stats[slave.name][:total_time] = time
    @condition.signal # Tell master this slave is finished
  end
end