class Totoro::BaseQueue

Public Class Methods

broadcast(id, payload, attrs = {}) click to toggle source
# File lib/totoro/base_queue.rb, line 16
def broadcast(id, payload, attrs = {})
  Totoro::BroadcastService.new(connection, config).broadcast(id, payload, attrs)
rescue Totoro::ConnectionBreakError => error
  handle_failed_msg(id, payload, error, :broadcast)
end
config() click to toggle source
# File lib/totoro/base_queue.rb, line 8
def config
  @config ||= Totoro::Config.new
end
connection() click to toggle source
# File lib/totoro/base_queue.rb, line 12
def connection
  @connection ||= Bunny.new(config.connect.merge(threaded: false))
end
enqueue(id, payload, attrs = {}) click to toggle source
# File lib/totoro/base_queue.rb, line 22
def enqueue(id, payload, attrs = {})
  Totoro::EnqueueService.new(connection, config).enqueue(id, payload, attrs)
rescue Totoro::ConnectionBreakError => error
  handle_failed_msg(id, payload, error, :enqueue)
end

Private Class Methods

handle_failed_msg(id, payload, error, group) click to toggle source
# File lib/totoro/base_queue.rb, line 30
def handle_failed_msg(id, payload, error, group)
  Rails.logger.error error.message
  Rails.logger.info 'Add failed message to resend list'
  STDOUT.flush
  @connection = nil
  Totoro::TotoroFailedMessage.create(
    class_name: to_s,
    queue_id: id,
    group: group,
    payload: payload
  )
end