Sha256: 987a23c5a67c358e13bb8d6e081e91c123fdb1ba60927ebe3c4a15a17df277e0

Contents?: true

Size: 1.66 KB

Versions: 13

Compression:

Stored size: 1.66 KB

Contents

require 'aws-sdk-sqs'
require 'toiler/utils/environment_loader'
require 'toiler/utils/logging'
require 'toiler/utils/argument_parser'
require 'toiler/worker'
require 'toiler/cli'
require 'toiler/version'

# Main module
module Toiler
  @worker_class_registry = {}
  @options = {
    aws: {}
  }
  @fetchers = {}
  @processor_pools = {}

  attr_reader :worker_class_registry, :options, :fetchers, :processor_pools
  module_function :worker_class_registry, :options, :fetchers, :processor_pools

  module_function

  def logger
    Toiler::Utils::Logging.logger
  end

  def queues
    worker_class_registry.keys
  end

  def active_worker_class_registry
    active_queues = options[:active_queues]
    if active_queues
      active_queues.each_with_object({}) do |q, registry|
        worker = @worker_class_registry[q]
        if worker.nil?
          logger.warn "No worker assigned to queue: #{q}"
        else
          registry[q] = worker
        end
      end
    else
      @worker_class_registry
    end
  end

  def fetcher(queue)
    fetchers["fetcher_#{queue}".to_sym]
  end

  def set_fetcher(queue, val)
    fetchers["fetcher_#{queue}".to_sym] = val
  end

  def processor_pool(queue)
    processor_pools["processor_pool_#{queue}".to_sym]
  end

  def set_processor_pool(queue, val)
    processor_pools["processor_pool_#{queue}".to_sym] = val
  end

  def default_options
    {
      auto_visibility_timeout: false,
      concurrency: 1,
      auto_delete: false,
      shutdown_timeout: 5,
      batch: false
    }
  end

  def register_worker(queue, worker)
    @worker_class_registry[queue] = worker
  end

  def worker_class_registry=(val)
    @worker_class_registry = val
  end
end

Version data entries

13 entries across 13 versions & 1 rubygems

Version Path
toiler-0.6.1 lib/toiler.rb
toiler-0.6.0 lib/toiler.rb
toiler-0.6.0.pre1 lib/toiler.rb
toiler-0.5.1 lib/toiler.rb
toiler-0.5.1.pre9 lib/toiler.rb
toiler-0.5.1.pre7 lib/toiler.rb
toiler-0.5.1.pre6 lib/toiler.rb
toiler-0.5.1.pre5 lib/toiler.rb
toiler-0.5.1.pre4 lib/toiler.rb
toiler-0.5.1.pre3 lib/toiler.rb
toiler-0.5.1.pre2 lib/toiler.rb
toiler-0.5.1.pre1 lib/toiler.rb
toiler-0.5.0 lib/toiler.rb