class Tackle::Consumer::DelayQueue
Public Class Methods
new(retry_delay, exchange, connection, logger)
click to toggle source
Calls superclass method
Tackle::Consumer::Queue::new
# File lib/tackle/consumer/delay_queue.rb, line 5 def initialize(retry_delay, exchange, connection, logger) @retry_delay = retry_delay name = "#{exchange.name}.delay.#{retry_delay}" options = { :durable => true, :arguments => { "x-dead-letter-exchange" => exchange.name, "x-dead-letter-routing-key" => exchange.routing_key, "x-message-ttl" => retry_delay * 1000 # miliseconds } } super(name, options, connection, logger) end
Public Instance Methods
publish(message)
click to toggle source
# File lib/tackle/consumer/delay_queue.rb, line 22 def publish(message) message.log_error "Pushing message to delay queue delay='#{@retry_delay}'" headers = { :headers => { :retry_count => message.retry_count + 1 } } @amqp_queue.publish(message.payload, headers) message.log_error "Message pushed to delay queue" rescue StandardError => ex message.log_error "Error while pushing message to delay queue exception='#{ex}'" raise ex end