Skip to content

Rails Setup

dwkoogt edited this page Apr 22, 2018 · 7 revisions

ActiveJob

Rails defines two default queues; default for ActiveJob and mailers for ActionMailer.

Typical worker for ActiveJob will look like this:

class ActiveJobWorker
  include PikaQue::Worker
  from_queue 'active-job'
  config codec: PikaQue::Codecs::RAILS

  def perform(msg)
    ActiveJob::Base.execute msg
    ack!
  end
end

PikaQue will create workers similar to above for queue names defined in config/pika_que.yml.

processors:
  - workers:
    - queue: mailers
    handler_class: PikaQue::Handlers::RetryHandler
    handler_options:
      retry_mode: :const
  - workers:
    - queue: default
    - queue: rocket
    handler_class: PikaQue::Handlers::RetryHandler
    handler_options:
      retry_mode: :exp
  - workers:
    - worker: ActiveJobWorker
    handler_class: PikaQue::Handlers::ErrorHandler

To configure PikaQue, create a pika_que.rb in:

config/initializers

Settings can looks like:

# pika_que.rb

PikaQue.configure :amqp => 'amqp://guest:guest@localhost:5672',
                  :vhost => '/'
                  # see PikaQue::Configuration for more options

PikaQue::Logging.logger = Rails.logger
Clone this wiki locally