Class: Tackle::DelayedRetry

Inherits:
Object
  • Object
show all
Includes:
TackleLogger
Defined in:
lib/tackle/delayed_retry.rb

Instance Method Summary collapse

Methods included from TackleLogger

#tackle_log

Constructor Details

#initialize(dead_letter_queue, properties, payload, retry_limit, logger) ⇒ DelayedRetry

Returns a new instance of DelayedRetry.



8
9
10
11
12
13
14
# File 'lib/tackle/delayed_retry.rb', line 8

def initialize(dead_letter_queue, properties, payload, retry_limit, logger)
  @dead_letter_queue = dead_letter_queue
  @properties = properties
  @payload = payload
  @retry_limit = retry_limit
  @logger = logger
end

Instance Method Details

#schedule_retryObject



16
17
18
19
20
21
22
23
# File 'lib/tackle/delayed_retry.rb', line 16

def schedule_retry
  if retry_count < @retry_limit
    tackle_log("Adding message to retry queue for retry #{retry_count + 1}/#{@retry_limit}")
    @dead_letter_queue.publish(@payload, :headers => {:retry_count => retry_count + 1})
  else
    tackle_log("Reached #{retry_count} retries. Discarding message.")
  end
end