Class: ActiveJob::QueueAdapters::AdvancedSneakersAdapter

Inherits:
Object
  • Object
show all
Defined in:
lib/active_job/queue_adapters/advanced_sneakers_adapter.rb

Overview

Active Job advanced Sneakers adapter

A high-performance RabbitMQ background processing framework for Ruby. Sneakers is being used in production for both I/O and CPU intensive workloads, and have achieved the goals of high-performance and 0-maintenance, as designed.

Read more about Sneakers here.

To use the advanced Sneakers adapter set the queue_adapter config to :advanced_sneakers.

Rails.application.config.active_job.queue_adapter = :advanced_sneakers

Defined Under Namespace

Classes: JobWrapper

Class Method Summary collapse

Class Method Details

.enqueue(job) ⇒ Object

:nodoc:



21
22
23
# File 'lib/active_job/queue_adapters/advanced_sneakers_adapter.rb', line 21

def enqueue(job) #:nodoc:
  AdvancedSneakersActiveJob.publisher.publish(*publish_params(job))
end

.enqueue_at(job, timestamp) ⇒ Object

:nodoc:



25
26
27
28
29
30
31
32
33
34
35
36
# File 'lib/active_job/queue_adapters/advanced_sneakers_adapter.rb', line 25

def enqueue_at(job, timestamp) #:nodoc:
  delay = AdvancedSneakersActiveJob.config.delay_proc.call(timestamp).to_i

  if delay.positive?
    message, options = publish_params(job)
    options[:headers] = { 'delay' => delay.to_i } # do not use x- prefix because headers exchanges ignore such headers

    AdvancedSneakersActiveJob.delayed_publisher.publish(message, options)
  else
    enqueue(job)
  end
end