class Soda::Manager
Attributes
fetcher[R]
mutex[R]
workers[R]
Public Class Methods
new()
click to toggle source
# File lib/soda/manager.rb, line 5 def initialize @workers = Set.new @fetcher = Fetcher.new @mutex = Mutex.new @shutdown = false count = Soda.options[:concurrency] count.times do @workers << Processor.new(self) end end
Public Instance Methods
on_died(worker)
click to toggle source
A processor will die on failed job execution. Replace it with a new one.
# File lib/soda/manager.rb, line 29 def on_died(worker) mutex.synchronize do workers.delete(worker) unless shutdown? workers << (processor = Processor.new(self)) processor.start end end end
start()
click to toggle source
# File lib/soda/manager.rb, line 17 def start workers.each(&:start) end
stop()
click to toggle source
# File lib/soda/manager.rb, line 21 def stop shutdown! workers.each(&:stop) workers.each(&:finish) end
Private Instance Methods
shutdown!()
click to toggle source
# File lib/soda/manager.rb, line 45 def shutdown! @shutdown = true end
shutdown?()
click to toggle source
# File lib/soda/manager.rb, line 49 def shutdown? @shutdown end