module CarrierWave::Backgrounder::Support::Backends::ClassMethods

Attributes

queue_options[R]

Public Instance Methods

backend(queue_name=nil, args={}) click to toggle source
# File lib/backgrounder/support/backends.rb, line 13
def backend(queue_name=nil, args={})
  return @backend if @backend
  @queue_options = args
  @backend = queue_name
end
enqueue_for_backend(worker, class_name, subject_id, mounted_as) click to toggle source
# File lib/backgrounder/support/backends.rb, line 19
def enqueue_for_backend(worker, class_name, subject_id, mounted_as)
  self.send :"enqueue_#{backend}", worker, class_name, subject_id, mounted_as
end

Private Instance Methods

enqueue_active_job(worker, *args) click to toggle source
# File lib/backgrounder/support/backends.rb, line 25
def enqueue_active_job(worker, *args)
  worker.perform(*args.map(&:to_s))
end
enqueue_delayed_job(worker, *args) click to toggle source
# File lib/backgrounder/support/backends.rb, line 29
def enqueue_delayed_job(worker, *args)
  worker_args = {}
  if ::Delayed::Job.new.respond_to?(:queue)
    worker_args[:queue] = queue_options[:queue] if queue_options[:queue]
    worker_args[:priority] = queue_options[:priority] if queue_options[:priority]
    ::Delayed::Job.enqueue worker.new(*args), worker_args
  else
    worker_args[:priority] = queue_options[:priority] if queue_options[:priority]
    ::Delayed::Job.enqueue worker.new(*args), worker_args
    if queue_options[:queue]
      ::Rails.logger.warn("Queue name given but no queue column exists for Delayed::Job")
    end
  end
end
enqueue_girl_friday(worker, *args) click to toggle source
# File lib/backgrounder/support/backends.rb, line 55
def enqueue_girl_friday(worker, *args)
  @girl_friday_queue ||= GirlFriday::WorkQueue.new(queue_options.delete(:queue) || :carrierwave, queue_options) do |msg|
    worker = msg[:worker]
    worker.perform
  end
  @girl_friday_queue << { :worker => worker.new(*args) }
end
enqueue_immediate(worker, *args) click to toggle source
# File lib/backgrounder/support/backends.rb, line 77
def enqueue_immediate(worker, *args)
  worker.new(*args).perform
end
enqueue_qc(worker, *args) click to toggle source
# File lib/backgrounder/support/backends.rb, line 72
def enqueue_qc(worker, *args)
  class_name, subject_id, mounted_as = args
  ::QC.enqueue "#{worker.name}.perform", class_name, subject_id, mounted_as.to_s
end
enqueue_qu(worker, *args) click to toggle source
# File lib/backgrounder/support/backends.rb, line 67
def enqueue_qu(worker, *args)
  worker.instance_variable_set('@queue', queue_options[:queue] || :carrierwave)
  ::Qu.enqueue worker, *args
end
enqueue_resque(worker, *args) click to toggle source
# File lib/backgrounder/support/backends.rb, line 44
def enqueue_resque(worker, *args)
  worker.instance_variable_set('@queue', queue_options[:queue] || :carrierwave)
  ::Resque.enqueue worker, *args
end
enqueue_sidekiq(worker, *args) click to toggle source
# File lib/backgrounder/support/backends.rb, line 49
def enqueue_sidekiq(worker, *args)
  override_queue_name = worker.sidekiq_options['queue'] == 'default' || worker.sidekiq_options['queue'].nil?
  args = sidekiq_queue_options(override_queue_name, 'class' => worker, 'args' => args)
  worker.client_push(args)
end
enqueue_sucker_punch(worker, *args) click to toggle source
# File lib/backgrounder/support/backends.rb, line 63
def enqueue_sucker_punch(worker, *args)
  worker.new.async.perform(*args)
end
sidekiq_queue_options(override_queue_name, args) click to toggle source
# File lib/backgrounder/support/backends.rb, line 81
def sidekiq_queue_options(override_queue_name, args)
  if override_queue_name && queue_options[:queue]
    args['queue'] = queue_options[:queue]
  end
  args['retry'] = queue_options[:retry] unless queue_options[:retry].nil?
  args['timeout'] = queue_options[:timeout] if queue_options[:timeout]
  args['backtrace'] = queue_options[:backtrace] if queue_options[:backtrace]
  args
end