| Class | Queueue::Queue |
| In: |
lib/queueue/http/queue.rb
lib/queueue/queue.rb |
| Parent: | Object |
| messages | [R] | |
| name | [R] | |
| visibility_timeout | [R] |
Create named Queue. An InvalidParameterValue Exception will be raised if the specified Queue name is not between 1 and 80 characters long. The Visibility Timeout for the Queue is set a default 30 seconds
# File lib/queueue/queue.rb, line 8 def initialize(queue_name) raise InvalidParameterValue.new("QueueName") if queue_name.nil? || !(1..80).include?(queue_name.size) @name, @messages, @visibility_timeout = queue_name, [], 30 end
Peek a Message providing the Message‘s id. A MessageNotFound Exception will be raised if no message with the specified id exists.
# File lib/queueue/queue.rb, line 16 def message(message_id) raise MissingParameter.new("MessageId") unless message_id @messages.find {|m| m.message_id == message_id} || raise(MessageNotFound) end
Get a number of visible Messages and set the Visibility Timeout on them. If number of Messages is not explicitly scpecified, one message is returned. If the Visibility Timeout is not explicitly specified, the Queue‘s current Visibility Timeout will be used. Returned Messages will be locked for an amount of time equal to the Visibility Timeout. These messages will not be visible on subsequent calls to queued_messages, until the Visibility Timeout expires.
# File lib/queueue/queue.rb, line 28 def queued_messages(number_of_messages, visibility_timeout) number_of_messages ||= 1 visibility_timeout ||= self.visibility_timeout raise InvalidParameterValue.new("NumberOfMessages") if number_of_messages > 256 raise InvalidParameterValue.new("VisibilityTimeout") if visibility_timeout > 86400 @messages.select {|m| !m.locked?}[0, number_of_messages].map do |message| message.visibility_timeout = visibility_timeout message.lock! message end end
Only available if the Queueue::Http module has been loaded.
# File lib/queueue/http/queue.rb, line 4 def url "http://#{Queueue::Http::HOST}:#{Queueue::Http::PORT}/#{Queueue::Http::QUEUE_PREFIX}/#{@name}" end
Set the Queue‘s Visibility Timeout. A InvalidParameterValue exception will be raised if the specified Visibility Timeout is greater than 86400 seconds
# File lib/queueue/queue.rb, line 62 def visibility_timeout=(visibility_timeout) raise InvalidParameterValue.new("VisibilityTimeout") if visibility_timeout > 86400 @visibility_timeout = visibility_timeout end