Module: CarrierWave::Backgrounder
- Defined in:
- lib/backgrounder/delay.rb,
lib/backgrounder/version.rb,
lib/backgrounder/orm/base.rb,
lib/carrierwave_backgrounder.rb,
lib/carrierwave_backgrounder.rb,
lib/backgrounder/orm/activemodel.rb,
lib/backgrounder/orm/data_mapper.rb
Defined Under Namespace
Modules: Delay, DelayStorage, ORM Classes: Railtie
Constant Summary collapse
- VERSION =
"0.0.9"
- Logger =
Logger.new(STDOUT)
Class Method Summary collapse
- .available_backends ⇒ Object
- .backend ⇒ Object
- .backend=(value) ⇒ Object
- .configure {|_self| ... } ⇒ Object
- .configure_backend ⇒ Object
- .enqueue_for_backend(worker, class_name, subject_id, mounted_as) ⇒ Object
Class Method Details
.available_backends ⇒ Object
34 35 36 37 38 39 40 41 42 43 44 45 |
# File 'lib/carrierwave_backgrounder.rb', line 34 def available_backends @available_backends ||= begin backends = [] backends << :girl_friday if defined? ::GirlFriday backends << :delayed_job if defined? ::Delayed::Job backends << :resque if defined? ::Resque backends << :qu if defined? ::Qu backends << :sidekiq if defined? ::Sidekiq backends << :qc if defined? ::QC backends end end |
.backend ⇒ Object
19 20 21 22 23 24 25 26 27 28 |
# File 'lib/carrierwave_backgrounder.rb', line 19 def backend return @backend unless @backend.nil? if available_backends.empty? warn 'WARNING: No queue backends found to use for CarrierWave::Backgrounder' elsif available_backends.size == 1 self.backend = available_backends.first elsif available_backends.size > 1 warn 'WARNING: Multiple queue backends found for CarrierWave::Backgrounder. You need to set one explicitly.' end end |
.backend=(value) ⇒ Object
14 15 16 17 |
# File 'lib/carrierwave_backgrounder.rb', line 14 def backend=(value) @backend = value self.configure_backend end |
.configure {|_self| ... } ⇒ Object
30 31 32 |
# File 'lib/carrierwave_backgrounder.rb', line 30 def configure yield self end |
.configure_backend ⇒ Object
47 48 49 50 51 52 53 54 55 |
# File 'lib/carrierwave_backgrounder.rb', line 47 def configure_backend if backend == :girl_friday require 'girl_friday' @girl_friday_queue = GirlFriday::WorkQueue.new(:carrierwave) do |msg| worker = msg[:worker] worker.perform end end end |
.enqueue_for_backend(worker, class_name, subject_id, mounted_as) ⇒ Object
57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 |
# File 'lib/carrierwave_backgrounder.rb', line 57 def enqueue_for_backend(worker, class_name, subject_id, mounted_as) case backend when :girl_friday @girl_friday_queue << { :worker => worker.new(self.class.name, subject_id, mounted_as) } when :delayed_job ::Delayed::Job.enqueue worker.new(class_name, subject_id, mounted_as) when :resque ::Resque.enqueue worker, class_name, subject_id, mounted_as when :qu ::Qu.enqueue worker, class_name, subject_id, column.mounted_as when :sidekiq ::Sidekiq::Client.enqueue worker, class_name, subject_id, mounted_as when :qc ::QC.enqueue "#{worker.name}.perform", class_name, subject_id, mounted_as.to_s end end |