Module: MultiWorker

Defined in:
lib/multi_worker.rb,
lib/multi_worker/version.rb,
lib/multi_worker/interface.rb,
lib/multi_worker/adapters/qu.rb,
lib/multi_worker/adapters/que.rb,
lib/multi_worker/adapters/toro.rb,
lib/multi_worker/adapters/inline.rb,
lib/multi_worker/adapters/resque.rb,
lib/multi_worker/adapters/sidekiq.rb,
lib/multi_worker/adapters/sneakers.rb,
lib/multi_worker/adapters/backburner.rb,
lib/multi_worker/adapters/delayed_job.rb,
lib/multi_worker/adapters/sucker_punch.rb,
lib/multi_worker/adapters/queue_classic.rb,
lib/multi_worker/adapters/threaded_in_memory_queue.rb,
lib/multi_worker/adapters/torquebox_backgroundable.rb

Defined Under Namespace

Modules: Adapters, Interface

Constant Summary collapse

AdapterNames =
[
  :resque,
  :sidekiq,
  :delayed_job,
  :qu,
  :queue_classic,
  :que,
  :sneakers,
  :torquebox_backgroundable,
  :threaded_in_memory_queue,
  :sucker_punch,
  :backburner,
  :inline
]
VERSION =
"0.2.0"

Class Attribute Summary collapse

Class Method Summary collapse

Class Attribute Details

.default_queueObject

Returns the value of attribute default_queue.



49
50
51
# File 'lib/multi_worker.rb', line 49

def default_queue
  @default_queue
end

Class Method Details

.adapter(adapter_name = nil) ⇒ Object



71
72
73
74
75
76
77
78
# File 'lib/multi_worker.rb', line 71

def adapter(adapter_name=nil)
  adapter_name ||= default_adapter
  @adapters[adapter_name] ||= begin
    require "multi_worker/adapters/#{adapter_name}"
    klass_name = adapter_name.to_s.split('_').map(&:capitalize) * ''
    MultiWorker::Adapters.const_get(klass_name)
  end
end

.configure(&block) ⇒ Object



28
29
30
# File 'lib/multi_worker.rb', line 28

def configure(&block)
  instance_eval &block
end

.default_adapter(adapter_name = nil) ⇒ Object



51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
# File 'lib/multi_worker.rb', line 51

def default_adapter(adapter_name=nil)
  return (@default_adapter = adapter_name) if (adapter_name && !adapter_name.empty?)

  @default_adapter ||= case
    when defined?(::Resque) then :resque
    when defined?(::Sidekiq) then :sidekiq
    when defined?(::Delayed::Worker) then :delayed_job
    when defined?(::Qu) then :qu
    when defined?(::QC::Queue) then :queue_classic
    when defined?(::Que) then :que
    when defined?(::Sneakers::Worker) then :sneakers
    when defined?(::TorqueBox::Messaging::Backgroundable) then :torquebox_backgroundable
    when defined?(::ThreadedInMemoryQueue) then :threaded_in_memory_queue
    when defined?(::SuckerPunch::Job) then :sucker_punch
    when defined?(::Backburner) then :backburner
    when defined?(::Toro) then :toro
    else :inline
  end
end

.default_options(opts = {}) ⇒ Object



32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
# File 'lib/multi_worker.rb', line 32

def default_options(opts={})
  @default_options ||= {
    adapter: default_adapter,
    queue: default_queue,
    status: false,
    retry: false,
    lock: false,
    unique: false
  }

  if opts && !opts.empty?
    @default_options.merge!(opts)
  end

  @default_options
end

.enqueue(worker_klass, *args) ⇒ Object



24
25
26
# File 'lib/multi_worker.rb', line 24

def enqueue(worker_klass, *args)
  worker_klass.perform_async(*args)
end