Class: Worker

Inherits:
Runnable show all
Defined in:
lib/s3-object-processor.rb

Instance Method Summary collapse

Methods inherited from Runnable

#join, #on_finish

Constructor Details

#initialize(no, key_queue, &process_key) ⇒ Worker

Returns a new instance of Worker.



92
93
94
95
96
# File 'lib/s3-object-processor.rb', line 92

def initialize(no, key_queue, &process_key)
  @no = no
  @key_queue = key_queue
  @process_key = process_key
end

Instance Method Details

#on_error(&callback) ⇒ Object



98
99
100
101
# File 'lib/s3-object-processor.rb', line 98

def on_error(&callback)
  @on_error = callback
  self
end

#runObject



103
104
105
106
107
108
109
110
111
112
113
# File 'lib/s3-object-processor.rb', line 103

def run
  super do
    until (key = @key_queue.pop) == :end
      begin
        @process_key.call(key)
      rescue => error
        @on_error.call(key, error) if @on_error
      end
    end
  end
end