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