module Toro::Worker::ClassMethods

Public Instance Methods

create_job(item) click to toggle source
# File lib/toro/worker.rb, line 21
def create_job(item)
  Toro::Client.create_job(normalize_job(item))
end
normalize_job(item) click to toggle source
# 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) click to toggle source
# File lib/toro/worker.rb, line 8
def perform_async(*args)
  create_job(args: args, queue: queue)
end
perform_at(time, *args) click to toggle source
# 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) click to toggle source
# File lib/toro/worker.rb, line 16
def perform_in(interval, *args)
  time = Time.now + interval
  perform_at(time, *args)
end
queue() click to toggle source
# File lib/toro/worker.rb, line 30
def queue
  toro_options[:queue]
end
toro_options(options={}) click to toggle source
# 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