Module: Sidekiq::Fiber::ManagerPatch

Defined in:
lib/sidekiq/fiber/manager_patch.rb

Overview

Patches Sidekiq::Manager to respect the per-capsule processor_class.

Instance Method Summary collapse

Instance Method Details

#initialize(capsule) ⇒ Object



21
22
23
24
25
26
27
28
29
# File 'lib/sidekiq/fiber/manager_patch.rb', line 21

def initialize(capsule)
  super
  klass = capsule.respond_to?(:processor_class) && capsule.processor_class
  @processor_class = klass || Sidekiq::Processor
  @workers.clear
  @count.times do
    @workers << @processor_class.new(@config, &method(:processor_result))
  end
end

#processor_result(processor, reason = nil) ⇒ Object



31
32
33
34
35
36
37
38
39
40
# File 'lib/sidekiq/fiber/manager_patch.rb', line 31

def processor_result(processor, reason = nil)
  @plock.synchronize do
    @workers.delete(processor)
    unless @done
      p = @processor_class.new(@config, &method(:processor_result))
      @workers << p
      p.start
    end
  end
end