Sha256: f3872839bb9d26817ca37de121d05ace64bf3c9ea5f2ec0f1154abf1bbe8e865

Contents?: true

Size: 1.64 KB

Versions: 19

Compression:

Stored size: 1.64 KB

Contents

module Taskinator
  module Queues

    # https://github.com/resque/resque

    def self.create_resque_adapter(config={})
      ResqueAdapter.new(config)
    end

    class ResqueAdapter
      def initialize(config={})
        config = Taskinator::Queues::DefaultConfig.merge(config)

        CreateProcessWorker.class_eval do
          @queue = config[:definition_queue]
        end

        ProcessWorker.class_eval do
          @queue = config[:process_queue]
        end

        TaskWorker.class_eval do
          @queue = config[:task_queue]
        end

      end

      def enqueue_create_process(definition, uuid, args)
        queue = definition.queue || Resque.queue_from_class(CreateProcessWorker)
        Resque.enqueue_to(queue, CreateProcessWorker, definition.name, uuid, Taskinator::Persistence.serialize(args))
      end

      def enqueue_process(process)
        queue = process.queue || Resque.queue_from_class(ProcessWorker)
        Resque.enqueue_to(queue, ProcessWorker, process.uuid)
      end

      def enqueue_task(task)
        queue = task.queue || Resque.queue_from_class(TaskWorker)
        Resque.enqueue_to(queue, TaskWorker, task.uuid)
      end

      class CreateProcessWorker
        def self.perform(definition_name, uuid, args)
          Taskinator::CreateProcessWorker.new(definition_name, uuid, args).perform
        end
      end

      class ProcessWorker
        def self.perform(process_uuid)
          Taskinator::ProcessWorker.new(process_uuid).perform
        end
      end

      class TaskWorker
        def self.perform(task_uuid)
          Taskinator::TaskWorker.new(task_uuid).perform
        end
      end

    end
  end
end

Version data entries

19 entries across 19 versions & 1 rubygems

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