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