class Osbourne::Queue
Attributes
name[R]
prefixed_name[R]
Public Class Methods
new(name)
click to toggle source
# File lib/osbourne/queue.rb, line 7 def initialize(name) @name = name @prefixed_name = Osbourne.prefixer(@name) arn end
Public Instance Methods
arn()
click to toggle source
# File lib/osbourne/queue.rb, line 17 def arn @arn ||= get_attributes["QueueArn"] end
redrive(retries, dead_letter_arn)
click to toggle source
# File lib/osbourne/queue.rb, line 21 def redrive(retries, dead_letter_arn) sqs.set_queue_attributes(queue_url: url, attributes: { 'ReceiveMessageWaitTimeSeconds': "20", # required for long polling to function 'RedrivePolicy': { 'deadLetterTargetArn': dead_letter_arn, 'maxReceiveCount': retries }.to_json }) end
url()
click to toggle source
# File lib/osbourne/queue.rb, line 13 def url @url ||= ensure_queue end
Private Instance Methods
ensure_queue()
click to toggle source
# File lib/osbourne/queue.rb, line 34 def ensure_queue Osbourne.logger.debug "[Osbourne] Ensuring queue `#{@prefixed_name}` exists" Osbourne.cache.fetch("osbourne_url_for_#{@prefixed_name}") do sqs.create_queue(queue_name: @prefixed_name).queue_url end end
get_attributes(attrs: %w[QueueArn])
click to toggle source
# File lib/osbourne/queue.rb, line 41 def get_attributes(attrs: %w[QueueArn]) sqs.get_queue_attributes(queue_url: url, attribute_names: attrs).attributes end