Class: AWS::SQS::QueueCollection

Inherits:
Object
  • Object
show all
Includes:
Enumerable
Defined in:
lib/aws/sqs/queue_collection.rb

Overview

Represents all the Queue objects in your account.

If you have permission to access a queue created by another account, you can also use this collection to access that queue by URL.

Examples:

Printing the URLs of all queues

pp sqs.queues.map(&:url)

Filtering queues by queue name prefix

pp sqs.queues.with_prefix("production_").map(&:url)

Accessing a queue by URL

url = "http://sqs.us-east-1.amazonaws.com/123456789012/myqueue"
sqs.queues[url].send_message("HELLO")

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#prefixString (readonly)



45
46
47
# File 'lib/aws/sqs/queue_collection.rb', line 45

def prefix
  @prefix
end

Instance Method Details

#[](url) ⇒ Queue



97
98
99
# File 'lib/aws/sqs/queue_collection.rb', line 97

def [](url)
  Queue.new(url, :config => config)
end

#create(name, opts = {}) ⇒ Queue

Note:

If you delete a queue, you must wait at least 60 seconds before creating a queue with the same name.

Creates a new queue.

Options Hash (opts):

  • :default_visibility_timeout (Integer)

    The visibility timeout (in seconds) to use for this queue.



74
75
76
77
# File 'lib/aws/sqs/queue_collection.rb', line 74

def create(name, opts = {})
  resp = client.create_queue(opts.merge(:queue_name => name))
  Queue.new(resp.queue_url, :config => config)
end

#each {|queue| ... } ⇒ Object

Yield Parameters:



80
81
82
83
84
85
86
87
# File 'lib/aws/sqs/queue_collection.rb', line 80

def each(&block)
  options = {}
  options[:queue_name_prefix] = prefix if prefix
  client.list_queues(options).queue_urls.each do |url|
    queue = self[url]
    yield(queue)
  end
end

#with_prefix(prefix) ⇒ QueueCollection



92
93
94
# File 'lib/aws/sqs/queue_collection.rb', line 92

def with_prefix(prefix)
  self.class.new(:prefix => prefix, :config => config)
end