user20010203
user20010203

Reputation: 99

Does PubSub auto-generate timestamps?

According to here: https://cloud.google.com/pubsub/docs/reference/rest/v1/PubsubMessage

The timestamp field should not be populated when a publisher sends a message to the queue. So this leads me to think PubSub attaches a timestamp automatically whenever it gets a message from a publisher.

Is this correct?

Upvotes: 7

Views: 5435

Answers (2)

Roshan Fernando
Roshan Fernando

Reputation: 525

They do generate using the publishTime. However on cases where there are multiple publishers publishing to Pub-Sub, you could attach a timestamp to every event in the publisher. https://cloud.google.com/pubsub/docs/ordering

Upvotes: 0

Lefteris S
Lefteris S

Reputation: 1672

Yes, you got that correctly. This is what is implied with the following sentence (from the docs you linked):

publishTime: The time at which the message was published, populated by the server when it receives the topics.publish call.

You can test that yourself: if you go to the Explorer's API and publish to a topic using the pubsub.projects.topics.publish method, without giving a publishTime and then you pull using a subscription from that same topic (pubsub.projects.subscriptions.pull), the pulled message will have a publishTime.

Now, there is also a sentence in the docs regarding publishTime which seems a bit unclear to me:

It must not be populated by the publisher in a topics.publish call.

If you actually try to add a (correctly formatted) publishTime in your publish call, you will not get an error. Still, the actual publishTime attached to the message that you later pull is the one provided by the pub/sub service (i.e. the publish time you gave will simply be ignored).

Upvotes: 4

Related Questions