Sha256: 4ba7083b23729e870f5e5dfbd9ea14c3baa6748e8eea5d720f6127bb16e694a6

Contents?: true

Size: 1.36 KB

Versions: 15

Compression:

Stored size: 1.36 KB

Contents

module Taskinator
  module Queues

    DefaultConfig = {
      :definition_queue => :default,
      :process_queue => :default,
      :task_queue => :default
    }.freeze

    def self.create_adapter(adapter, config={})
      begin
        LoggedAdapter.new(send("create_#{adapter}_adapter", config))
      rescue NoMethodError
        raise "The queue adapter `#{adapter}` is not yet supported or it's runtime isn't loaded."
      end
    end

    class LoggedAdapter < Delegator

      attr_reader :adapter

      def initialize(adapter)
        Taskinator.logger.info("Initialized '#{adapter.class.name}' queue adapter")
        @adapter = adapter
      end

      def __getobj__
        adapter
      end

      def enqueue_create_process(definition, uuid, args)
        Taskinator.logger.info("Enqueuing process creation for #{definition}")
        adapter.enqueue_create_process(definition, uuid, args)
      end

      def enqueue_process(process)
        Taskinator.logger.info("Enqueuing process #{process}")
        adapter.enqueue_process(process)
      end

      def enqueue_task(task)
        Taskinator.logger.info("Enqueuing task #{task}")
        adapter.enqueue_task(task)
      end

    end

  end
end

require 'taskinator/queues/delayed_job' if defined?(Delayed)
require 'taskinator/queues/resque' if defined?(Resque)
require 'taskinator/queues/sidekiq' if defined?(Sidekiq)

Version data entries

15 entries across 15 versions & 1 rubygems

Version Path
taskinator-0.4.3 lib/taskinator/queues.rb
taskinator-0.4.2 lib/taskinator/queues.rb
taskinator-0.4.1 lib/taskinator/queues.rb
taskinator-0.4.0 lib/taskinator/queues.rb
taskinator-0.3.16 lib/taskinator/queues.rb
taskinator-0.3.15 lib/taskinator/queues.rb
taskinator-0.3.14 lib/taskinator/queues.rb
taskinator-0.3.13 lib/taskinator/queues.rb
taskinator-0.3.12 lib/taskinator/queues.rb
taskinator-0.3.11 lib/taskinator/queues.rb
taskinator-0.3.10 lib/taskinator/queues.rb
taskinator-0.3.9 lib/taskinator/queues.rb
taskinator-0.3.7 lib/taskinator/queues.rb
taskinator-0.3.6 lib/taskinator/queues.rb
taskinator-0.3.5 lib/taskinator/queues.rb