class AliMns::Message
Attributes
body[R]
body_md5[R]
dequeue_count[R]
enqueue_at[R]
first_enqueue_at[R]
id[R]
next_visible_at[R]
priority[R]
queue[R]
receipt_handle[R]
Public Class Methods
new(queue, content)
click to toggle source
# File lib/ali_mns/message.rb, line 6 def initialize queue, content h = Hash.xml_object(content, "Message") @queue = queue @id = h["MessageId"] @body_md5 = h["MessageBodyMD5"] @body = h["MessageBody"] @enqueue_at = Time.at(h["EnqueueTime"].to_i/1000.0) @first_enqueue_at = Time.at(h["FirstDequeueTime"].to_i/1000.0) @next_visible_at = Time.at(h["NextVisibleTime"].to_i/1000.0) if h["NextVisibleTime"] @dequeue_count = h["DequeueCount"].to_i @priority = h["Priority"].to_i @receipt_handle = h["ReceiptHandle"] end
Public Instance Methods
change_visibility(seconds)
click to toggle source
# File lib/ali_mns/message.rb, line 25 def change_visibility seconds check_receipt_handle AliMns::Request.put(queue.messages_path, params:{:ReceiptHandle => receipt_handle, :VisibilityTimeout=>seconds}) end
delete()
click to toggle source
# File lib/ali_mns/message.rb, line 20 def delete check_receipt_handle AliMns::Request.delete(queue.messages_path, params:{:ReceiptHandle => receipt_handle}) end
to_s()
click to toggle source
# File lib/ali_mns/message.rb, line 30 def to_s s = { "队列"=> queue.name, "ID"=>id, "MD5"=>body_md5, "Receipt handle"=>receipt_handle, "Enqueue at"=>enqueue_at, "First enqueue at"=>first_enqueue_at, "Next visible at"=>next_visible_at, "Dequeue count" => dequeue_count, "Priority"=>priority }.collect{|k,v| "#{k}: #{v}"} sep = "=============================================" s.unshift sep s << sep s << body s.join("\n") end
Private Instance Methods
check_receipt_handle()
click to toggle source
# File lib/ali_mns/message.rb, line 51 def check_receipt_handle raise "No receipt handle for this operation" unless receipt_handle end