class Aliyun::Mqs::Queue
Attributes
name[R]
Public Class Methods
[](name)
click to toggle source
# File lib/aliyun/mqs/queue.rb, line 8 def [] name Queue.new(name) end
new(name)
click to toggle source
# File lib/aliyun/mqs/queue.rb, line 20 def initialize name @name = name end
queues(opts={})
click to toggle source
# File lib/aliyun/mqs/queue.rb, line 12 def queues opts={} mqs_options = {query: "x-mqs-prefix", offset: "x-mqs-marker", size: "x-mqs-ret-number"} mqs_headers = opts.slice(*mqs_options.keys).reduce({}){|mqs_headers, item| k, v = *item; mqs_headers.merge!(mqs_options[k]=>v)} response = Request.get("/", mqs_headers: mqs_headers) Hash.xml_array(response, "Queues", "Queue").collect{|item| Queue.new(URI(item["QueueURL"]).path.sub!(/^\//, ""))} end
Public Instance Methods
create(opts={})
click to toggle source
# File lib/aliyun/mqs/queue.rb, line 24 def create opts={} response = Request.put(queue_path) do |request| msg_options = { :VisibilityTimeout => 30, :DelaySeconds => 0, :MaximumMessageSize => 65536, :MessageRetentionPeriod => 345600, :PollingWaitSeconds => 0}.merge(opts) request.content :Queue, msg_options end end
delete()
click to toggle source
# File lib/aliyun/mqs/queue.rb, line 36 def delete Request.delete(queue_path) end
messages_path()
click to toggle source
# File lib/aliyun/mqs/queue.rb, line 63 def messages_path "/#{name}/messages" end
peek_message()
click to toggle source
# File lib/aliyun/mqs/queue.rb, line 54 def peek_message result = Request.get(messages_path, params: {peekonly: true}) Message.new(self, result) end
queue_path()
click to toggle source
# File lib/aliyun/mqs/queue.rb, line 59 def queue_path "/#{name}" end
receive_message(wait_seconds: nil)
click to toggle source
# File lib/aliyun/mqs/queue.rb, line 47 def receive_message wait_seconds: nil request_opts = {} request_opts.merge!(params:{waitseconds: wait_seconds}) if wait_seconds result = Request.get(messages_path, request_opts) Message.new(self, result) end
send_message(message, opts={})
click to toggle source
# File lib/aliyun/mqs/queue.rb, line 40 def send_message message, opts={} Request.post(messages_path) do |request| msg_options = {:DelaySeconds => 0, :Priority => 10}.merge(opts) request.content :Message, msg_options.merge(:MessageBody => message.to_s) end end