Class: Shoryuken::Queue
- Inherits:
-
Object
- Object
- Shoryuken::Queue
- Defined in:
- lib/shoryuken/queue.rb
Constant Summary collapse
- FIFO_ATTR =
'FifoQueue'
- MESSAGE_GROUP_ID =
'ShoryukenMessage'
- VISIBILITY_TIMEOUT_ATTR =
'VisibilityTimeout'
Instance Attribute Summary collapse
-
#client ⇒ Object
Returns the value of attribute client.
-
#name ⇒ Object
Returns the value of attribute name.
-
#url ⇒ Object
Returns the value of attribute url.
Instance Method Summary collapse
- #delete_messages(options) ⇒ Object
- #fifo? ⇒ Boolean
-
#initialize(client, name) ⇒ Queue
constructor
A new instance of Queue.
- #receive_messages(options) ⇒ Object
- #send_message(options) ⇒ Object
- #send_messages(options) ⇒ Object
- #visibility_timeout ⇒ Object
Constructor Details
#initialize(client, name) ⇒ Queue
Returns a new instance of Queue.
9 10 11 12 13 14 15 |
# File 'lib/shoryuken/queue.rb', line 9 def initialize(client, name) self.name = name self.client = client self.url = client.get_queue_url(queue_name: name).queue_url rescue Aws::SQS::Errors::NonExistentQueue => e raise e, "The specified queue '#{name}' does not exist." end |
Instance Attribute Details
#client ⇒ Object
Returns the value of attribute client.
7 8 9 |
# File 'lib/shoryuken/queue.rb', line 7 def client @client end |
#name ⇒ Object
Returns the value of attribute name.
7 8 9 |
# File 'lib/shoryuken/queue.rb', line 7 def name @name end |
#url ⇒ Object
Returns the value of attribute url.
7 8 9 |
# File 'lib/shoryuken/queue.rb', line 7 def url @url end |
Instance Method Details
#delete_messages(options) ⇒ Object
21 22 23 |
# File 'lib/shoryuken/queue.rb', line 21 def () client.(.merge(queue_url: url)) end |
#fifo? ⇒ Boolean
43 44 45 |
# File 'lib/shoryuken/queue.rb', line 43 def fifo? @_fifo ||= queue_attributes.attributes[FIFO_ATTR] == 'true' end |
#receive_messages(options) ⇒ Object
37 38 39 40 41 |
# File 'lib/shoryuken/queue.rb', line 37 def () client.(.merge(queue_url: url)). . map { |m| Message.new(client, self, m) } end |
#send_message(options) ⇒ Object
25 26 27 28 29 30 31 |
# File 'lib/shoryuken/queue.rb', line 25 def () = ().merge(queue_url: url) Shoryuken.client_middleware.invoke() do client.() end end |
#send_messages(options) ⇒ Object
33 34 35 |
# File 'lib/shoryuken/queue.rb', line 33 def () client.(().merge(queue_url: url)) end |
#visibility_timeout ⇒ Object
17 18 19 |
# File 'lib/shoryuken/queue.rb', line 17 def visibility_timeout queue_attributes.attributes[VISIBILITY_TIMEOUT_ATTR].to_i end |