module ResqueDuplicateless::Ext::Resque::Job

Public Instance Methods

create(queue, klass, *args) click to toggle source
# File lib/resque-duplicateless/ext/resque/job.rb, line 9
def create(queue, klass, *args)
  create_with_options :queue => queue, :class => klass, :args => args
end
create_with_options(options = {}) click to toggle source
# File lib/resque-duplicateless/ext/resque/job.rb, line 13
def create_with_options(options = {})
  queue, klass, args = options[:queue], options[:class], options[:args]
  ::Resque.validate(klass, queue)

  if ::Resque.inline?
    # Instantiating a Resque::Job and calling perform on it so callbacks run
    # decode(encode(args)) to ensure that args are normalized in the same manner as a non-inline job
    new(:inline, {'class' => klass, 'args' => decode(encode(args))}).perform
  # FINALLY, a unique push!
  elsif options[:unique]
    ::Resque.unique_push(queue, :class => klass.to_s, :args => args)
  else
    ::Resque.push(queue, :class => klass.to_s, :args => args)
  end
end