Method: MapRedus::Reducer.perform

Defined in:
lib/mapredus/reducer.rb

.perform(pid, key) ⇒ Object

Doesn’t handle redundant workers and fault tolerance

TODO: Resque::AutoRetry might mess this up.



39
40
41
42
43
44
45
46
47
# File 'lib/mapredus/reducer.rb', line 39

def self.perform(pid, key)
  process = Process.open(pid)
  reduce_perform(process, key)
rescue MapRedus::RecoverableFail
  Master.enslave_later_reduce(process, key)
ensure
  Master.free_slave(pid)
  process.next_state
end