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