Class: Sneakers::Handlers::DelayedRetry
- Inherits:
-
Object
- Object
- Sneakers::Handlers::DelayedRetry
- Defined in:
- lib/sneakers/handlers/delayed_retry.rb
Instance Method Summary collapse
- #acknowledge(hdr, _props, _msg) ⇒ Object
- #error(hdr, props, msg, err) ⇒ Object
-
#initialize(channel, queue, opts) ⇒ DelayedRetry
constructor
A new instance of DelayedRetry.
- #noop(hdr, props, msg) ⇒ Object
- #reject(hdr, props, msg, requeue = false) ⇒ Object
Constructor Details
#initialize(channel, queue, opts) ⇒ DelayedRetry
Returns a new instance of DelayedRetry.
6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
# File 'lib/sneakers/handlers/delayed_retry.rb', line 6 def initialize(channel, queue, opts) @worker_queue_name = queue.name Sneakers.logger.debug do "#{log_prefix} creating handler, opts=#{opts}" end @channel = channel @opts = opts error_exchange_name = @opts[:error_exchange_name] || 'error_exchange' Sneakers.logger.debug do "#{log_prefix} creating exchange=#{error_exchange_name}" end @error_exchange = @channel.exchange( error_exchange_name, type: 'direct', durable: exchange_durable? ) error_queue_name = @opts[:error_queue_name] || "error.#{@worker_queue_name}" Sneakers.logger.debug do "#{log_prefix} creating queue=#{error_queue_name}" end error_queue = @channel.queue( error_queue_name, durable: queue_durable? ) error_queue.bind(@error_exchange, routing_key: @worker_queue_name) @max_retries = @opts[:number_of_retries] || 5 @sleep_before_retry = @opts[:sleep_before_retry] || 0 @retriable_errors = @opts[:retriable_errors] || [] @on_retry = @opts[:on_retry] || proc {} @on_error = @opts[:on_error] || proc {} end |
Instance Method Details
#acknowledge(hdr, _props, _msg) ⇒ Object
43 44 45 |
# File 'lib/sneakers/handlers/delayed_retry.rb', line 43 def acknowledge(hdr, _props, _msg) @channel.acknowledge(hdr.delivery_tag, false) end |
#error(hdr, props, msg, err) ⇒ Object
55 56 57 |
# File 'lib/sneakers/handlers/delayed_retry.rb', line 55 def error(hdr, props, msg, err) handle_retry(hdr, props, msg, err) end |
#noop(hdr, props, msg) ⇒ Object
59 |
# File 'lib/sneakers/handlers/delayed_retry.rb', line 59 def noop(hdr, props, msg); end |
#reject(hdr, props, msg, requeue = false) ⇒ Object
47 48 49 50 51 52 53 |
# File 'lib/sneakers/handlers/delayed_retry.rb', line 47 def reject(hdr, props, msg, requeue = false) if requeue @channel.reject(hdr.delivery_tag, requeue) else handle_retry(hdr, props, msg, :reject) end end |