lib/toiler/actor/supervisor.rb in toiler-0.6.1 vs lib/toiler/actor/supervisor.rb in toiler-0.7.0

- old
+ new

@@ -1,32 +1,34 @@ +# frozen_string_literal: true + require 'toiler/actor/fetcher' require 'toiler/actor/processor' module Toiler module Actor # Actor that starts and supervises Toiler's actors class Supervisor < Concurrent::Actor::RestartingContext include Utils::ActorLogging - attr_accessor :client - def initialize - @client = ::Aws::SQS::Client.new + super + spawn_processors spawn_fetchers end def on_message(_msg) pass end def spawn_fetchers Toiler.active_worker_class_registry.each do |queue, klass| - count = klass.concurrency + count = klass.concurrency + provider = klass.provider begin fetcher = Actor::Fetcher.spawn! name: "fetcher_#{queue}".to_sym, supervise: true, - args: [queue, client, count] + args: [queue, count, provider] Toiler.set_fetcher queue, fetcher rescue StandardError => e error "Failed to start Fetcher for queue #{queue}: #{e.message}\n#{e.backtrace.join("\n")}" end end