Module: Toro::Worker::ClassMethods

Defined in:
lib/toro/worker.rb

Instance Method Summary collapse

Instance Method Details

#create_job(item) ⇒ Object



21
22
23
# File 'lib/toro/worker.rb', line 21

def create_job(item)
  Toro::Client.create_job(normalize_job(item))
end

#normalize_job(item) ⇒ Object



25
26
27
28
# File 'lib/toro/worker.rb', line 25

def normalize_job(item)
  name = respond_to?(:job_name) ? send(:job_name, *(item[:args])) : nil
  { class_name: self.name, name: name }.merge(item)
end

#perform_async(*args) ⇒ Object



8
9
10
# File 'lib/toro/worker.rb', line 8

def perform_async(*args)
  create_job(args: args, queue: queue)
end

#perform_at(time, *args) ⇒ Object



12
13
14
# File 'lib/toro/worker.rb', line 12

def perform_at(time, *args)
  create_job(args: args, queue: queue, scheduled_at: time, status: 'scheduled')
end

#perform_in(interval, *args) ⇒ Object



16
17
18
19
# File 'lib/toro/worker.rb', line 16

def perform_in(interval, *args)
  time = Time.now + interval
  perform_at(time, *args)
end

#queueObject



30
31
32
# File 'lib/toro/worker.rb', line 30

def queue
  toro_options[:queue]
end

#toro_options(options = {}) ⇒ Object



34
35
36
37
38
39
40
41
# File 'lib/toro/worker.rb', line 34

def toro_options(options={})
  @toro_options ||= {
    queue: Toro.options[:default_queue],
    retry_interval: nil
  }
  @toro_options.merge!(options)
  @toro_options
end