class Lambdakiq::Queue

Attributes

queue_name[R]
queue_url[R]

Public Class Methods

new(queue_name) click to toggle source
# File lib/lambdakiq/queue.rb, line 7
def initialize(queue_name)
  @queue_name = queue_name
  @queue_url = get_queue_url
  attributes
end

Public Instance Methods

attributes() click to toggle source
# File lib/lambdakiq/queue.rb, line 17
def attributes
  @attributes ||= client.get_queue_attributes({
    queue_url: queue_url,
    attribute_names: ['All']
  }).attributes
end
fifo?() click to toggle source
# File lib/lambdakiq/queue.rb, line 32
def fifo?
  queue_name.ends_with?('.fifo')
end
max_receive_count() click to toggle source
# File lib/lambdakiq/queue.rb, line 28
def max_receive_count
  redrive_policy['maxReceiveCount'].to_i
end
redrive_policy() click to toggle source
# File lib/lambdakiq/queue.rb, line 24
def redrive_policy
  @redrive_policy ||= JSON.parse(attributes['RedrivePolicy'])
end
send_message(job, options = {}) click to toggle source
# File lib/lambdakiq/queue.rb, line 13
def send_message(job, options = {})
  client.send_message send_message_params(job, options)
end

Private Instance Methods

client() click to toggle source
# File lib/lambdakiq/queue.rb, line 38
def client
  Lambdakiq.client.sqs
end
get_queue_url() click to toggle source
# File lib/lambdakiq/queue.rb, line 42
def get_queue_url
  client.get_queue_url(queue_name: queue_name).queue_url
end
message_params(job, options) click to toggle source
# File lib/lambdakiq/queue.rb, line 50
def message_params(job, options)
  Message.new(self, job, options).params
end
send_message_params(job, options) click to toggle source
# File lib/lambdakiq/queue.rb, line 46
def send_message_params(job, options)
  { queue_url: queue_url }.merge(message_params(job, options))
end