Class: Google::Cloud::Pubsub::Message
- Inherits:
-
Object
- Object
- Google::Cloud::Pubsub::Message
- Defined in:
- lib/google/cloud/pubsub/message.rb
Overview
Message
Represents a Pub/Sub Message.
Message objects are created by Topic#publish. Subscription#pull returns an array of ReceivedMessage objects, each of which contains a Message object. Each ReceivedMessage object can be acknowledged and/or delayed.
Instance Method Summary collapse
-
#attributes ⇒ Object
Optional attributes for the message.
-
#data ⇒ Object
The message payload.
-
#initialize(data = nil, attributes = {}) ⇒ Message
constructor
Create an empty Message object.
-
#message_id ⇒ Object
(also: #msg_id)
The ID of this message, assigned by the server at publication time.
-
#published_at ⇒ Object
(also: #publish_time)
The time at which the message was published.
Constructor Details
#initialize(data = nil, attributes = {}) ⇒ Message
Create an empty Message object. This can be used to publish several messages in bulk.
63 64 65 66 67 68 69 70 71 |
# File 'lib/google/cloud/pubsub/message.rb', line 63 def initialize data = nil, attributes = {} # Convert attributes to strings to match the protobuf definition attributes = Hash[attributes.map { |k, v| [String(k), String(v)] }] @grpc = Google::Pubsub::V1::PubsubMessage.new( data: String(data).dup.force_encoding(Encoding::ASCII_8BIT), attributes: attributes ) end |
Instance Method Details
#attributes ⇒ Object
Optional attributes for the message.
82 83 84 85 86 |
# File 'lib/google/cloud/pubsub/message.rb', line 82 def attributes return @grpc.attributes.to_h if @grpc.attributes.respond_to? :to_h # Enumerable doesn't have to_h on Ruby 2.0, so fallback to this Hash[@grpc.attributes.to_a] end |
#data ⇒ Object
The message payload. This data is a list of bytes encoded as ASCII-8BIT.
76 77 78 |
# File 'lib/google/cloud/pubsub/message.rb', line 76 def data @grpc.data end |
#message_id ⇒ Object Also known as: msg_id
The ID of this message, assigned by the server at publication time. Guaranteed to be unique within the topic.
91 92 93 |
# File 'lib/google/cloud/pubsub/message.rb', line 91 def @grpc. end |
#published_at ⇒ Object Also known as: publish_time
The time at which the message was published.
98 99 100 |
# File 'lib/google/cloud/pubsub/message.rb', line 98 def published_at Convert. @grpc.publish_time end |