Sha256: 080018d081b755721b9fdf66f6e033bd7b02994af7107c4dd8aedba5dbb53597
Contents?: true
Size: 980 Bytes
Versions: 1
Compression:
Stored size: 980 Bytes
Contents
# frozen_string_literal: true module AdvancedSneakersActiveJob module Support class LocateWorkersByQueues def initialize(queues) @queues = queues.uniq.reject(&:blank?) @queues_without_workers = [] @workers = [] end def call detect_workers_for_queues! ensure_all_workers_found! @workers end private def ensure_all_workers_found! return if @queues_without_workers.empty? raise("Missing workers for queues: #{@queues_without_workers.join(', ')}") end def all_workers @all_workers ||= Sneakers::Worker::Classes.activejob_workers end def detect_workers_for_queues! @queues.each do |queue| worker = all_workers.detect { |klass| klass.queue_name == queue } if worker @workers << worker else @queues_without_workers << queue end end end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
advanced-sneakers-activejob-0.3.3 | lib/advanced_sneakers_activejob/support/locate_workers_by_queues.rb |