public class PubSubTemplate extends Object implements PubSubOperations
PubSubOperations
.
The main Google Cloud Pub/Sub integration component for publishing to topics and consuming messages from subscriptions asynchronously or by pulling.
Constructor and Description |
---|
PubSubTemplate(PublisherFactory publisherFactory,
SubscriberFactory subscriberFactory)
Default
PubSubTemplate constructor. |
PubSubTemplate(PubSubPublisherTemplate pubSubPublisherTemplate,
PubSubSubscriberTemplate pubSubSubscriberTemplate)
Default
PubSubTemplate constructor that uses a PubSubPublisherTemplate
and a PubSubSubscriberTemplate . |
Modifier and Type | Method and Description |
---|---|
org.springframework.util.concurrent.ListenableFuture<Void> |
ack(Collection<? extends AcknowledgeablePubsubMessage> acknowledgeablePubsubMessages)
Acknowledge a batch of messages.
|
PubSubMessageConverter |
getMessageConverter() |
PublisherFactory |
getPublisherFactory() |
PubSubPublisherTemplate |
getPubSubPublisherTemplate() |
PubSubSubscriberTemplate |
getPubSubSubscriberTemplate() |
SubscriberFactory |
getSubscriberFactory() |
org.springframework.util.concurrent.ListenableFuture<Void> |
modifyAckDeadline(Collection<? extends AcknowledgeablePubsubMessage> acknowledgeablePubsubMessages,
int ackDeadlineSeconds)
Modify the ack deadline of a batch of messages.
|
org.springframework.util.concurrent.ListenableFuture<Void> |
nack(Collection<? extends AcknowledgeablePubsubMessage> acknowledgeablePubsubMessages)
Negatively acknowledge a batch of messages.
|
org.springframework.util.concurrent.ListenableFuture<String> |
publish(String topic,
com.google.pubsub.v1.PubsubMessage pubsubMessage)
Send a message to Pub/Sub.
|
<T> org.springframework.util.concurrent.ListenableFuture<String> |
publish(String topic,
T payload)
Send a message to Pub/Sub.
|
<T> org.springframework.util.concurrent.ListenableFuture<String> |
publish(String topic,
T payload,
Map<String,String> headers)
Uses the configured message converter to first convert the payload and headers to a
PubsubMessage and then publish it. |
List<AcknowledgeablePubsubMessage> |
pull(String subscription,
Integer maxMessages,
Boolean returnImmediately)
Pull a number of messages from a Google Cloud Pub/Sub subscription.
|
List<com.google.pubsub.v1.PubsubMessage> |
pullAndAck(String subscription,
Integer maxMessages,
Boolean returnImmediately)
Pull and auto-acknowledge a number of messages from a Google Cloud Pub/Sub subscription.
|
org.springframework.util.concurrent.ListenableFuture<List<com.google.pubsub.v1.PubsubMessage>> |
pullAndAckAsync(String subscription,
Integer maxMessages,
Boolean returnImmediately)
Asynchronously pull and auto-acknowledge a number of messages from a Google Cloud Pub/Sub subscription.
|
<T> List<ConvertedAcknowledgeablePubsubMessage<T>> |
pullAndConvert(String subscription,
Integer maxMessages,
Boolean returnImmediately,
Class<T> payloadType)
Pull a number of messages from a Google Cloud Pub/Sub subscription and convert them to Spring messages with
the desired payload type.
|
<T> org.springframework.util.concurrent.ListenableFuture<List<ConvertedAcknowledgeablePubsubMessage<T>>> |
pullAndConvertAsync(String subscription,
Integer maxMessages,
Boolean returnImmediately,
Class<T> payloadType)
Asynchronously pull a number of messages from a Google Cloud Pub/Sub subscription and convert them to Spring messages with
the desired payload type.
|
org.springframework.util.concurrent.ListenableFuture<List<AcknowledgeablePubsubMessage>> |
pullAsync(String subscription,
Integer maxMessages,
Boolean returnImmediately)
Asynchronously pull a number of messages from a Google Cloud Pub/Sub subscription.
|
com.google.pubsub.v1.PubsubMessage |
pullNext(String subscription)
Pull and auto-acknowledge a message from a Google Cloud Pub/Sub subscription.
|
org.springframework.util.concurrent.ListenableFuture<com.google.pubsub.v1.PubsubMessage> |
pullNextAsync(String subscription)
Asynchronously pull and auto-acknowledge a message from a Google Cloud Pub/Sub subscription.
|
void |
setMessageConverter(PubSubMessageConverter messageConverter) |
Subscriber |
subscribe(String subscription,
Consumer<BasicAcknowledgeablePubsubMessage> messageConsumer)
Add a callback method to an existing subscription.
|
<T> Subscriber |
subscribeAndConvert(String subscription,
Consumer<ConvertedBasicAcknowledgeablePubsubMessage<T>> messageConsumer,
Class<T> payloadType)
Add a callback method to an existing subscription that receives Pub/Sub messages converted to the requested
payload type.
|
public PubSubTemplate(PublisherFactory publisherFactory, SubscriberFactory subscriberFactory)
PubSubTemplate
constructor.publisherFactory
- the Publisher
factory to
publish to topics.subscriberFactory
- the Subscriber
factory
to subscribe to subscriptions.public PubSubTemplate(PubSubPublisherTemplate pubSubPublisherTemplate, PubSubSubscriberTemplate pubSubSubscriberTemplate)
PubSubTemplate
constructor that uses a PubSubPublisherTemplate
and a PubSubSubscriberTemplate
.pubSubPublisherTemplate
- the PubSubPublisherTemplate
to
publish to topics.pubSubSubscriberTemplate
- the PubSubSubscriberTemplate
to
subscribe to subscriptions or pull messagespublic PubSubPublisherTemplate getPubSubPublisherTemplate()
public PubSubSubscriberTemplate getPubSubSubscriberTemplate()
public PubSubMessageConverter getMessageConverter()
public void setMessageConverter(PubSubMessageConverter messageConverter)
public <T> org.springframework.util.concurrent.ListenableFuture<String> publish(String topic, T payload, Map<String,String> headers)
PubsubMessage
and then publish it.publish
in interface PubSubPublisherOperations
T
- the type of the payload to publishtopic
- canonical topic name, e.g., "topicName", or the fully-qualified topic name in the
projects/<project_name>/topics/<topic_name>
formatpayload
- an object that will be serialized and sentheaders
- the headers to publishpublic <T> org.springframework.util.concurrent.ListenableFuture<String> publish(String topic, T payload)
PubSubPublisherOperations
publish
in interface PubSubPublisherOperations
T
- the type of the payload to publishtopic
- canonical topic name, e.g., "topicName", or the fully-qualified topic name in the
projects/<project_name>/topics/<topic_name>
formatpayload
- an object that will be serialized and sentpublic org.springframework.util.concurrent.ListenableFuture<String> publish(String topic, com.google.pubsub.v1.PubsubMessage pubsubMessage)
PubSubPublisherOperations
publish
in interface PubSubPublisherOperations
topic
- canonical topic name, e.g., "topicName", or the fully-qualified topic name in the
projects/<project_name>/topics/<topic_name>
formatpubsubMessage
- a Google Cloud Pub/Sub API messagepublic Subscriber subscribe(String subscription, Consumer<BasicAcknowledgeablePubsubMessage> messageConsumer)
PubSubSubscriberOperations
The created Subscriber
is returned so it can be stopped.
subscribe
in interface PubSubSubscriberOperations
subscription
- canonical subscription name, e.g., "subscriptionName", or the fully-qualified
subscription name in the projects/<project_name>/subscriptions/<subscription_name>
formatmessageConsumer
- the callback method triggered when new messages arrivepublic <T> Subscriber subscribeAndConvert(String subscription, Consumer<ConvertedBasicAcknowledgeablePubsubMessage<T>> messageConsumer, Class<T> payloadType)
PubSubSubscriberOperations
The created Subscriber
is returned so it can be stopped.
subscribeAndConvert
in interface PubSubSubscriberOperations
T
- the type of the payloadsubscription
- canonical subscription name, e.g., "subscriptionName", or the fully-qualified
subscription name in the projects/<project_name>/subscriptions/<subscription_name>
formatmessageConsumer
- the callback method triggered when new messages arrivepayloadType
- the type to which the payload of the Pub/Sub message should be convertedpublic List<AcknowledgeablePubsubMessage> pull(String subscription, Integer maxMessages, Boolean returnImmediately)
PubSubSubscriberOperations
pull
in interface PubSubSubscriberOperations
subscription
- canonical subscription name, e.g., "subscriptionName", or the fully-qualified
subscription name in the projects/<project_name>/subscriptions/<subscription_name>
formatmaxMessages
- the maximum number of pulled messages. If this value is null then
up to Integer.MAX_VALUE messages will be requested.returnImmediately
- returns immediately even if subscription doesn't contain enough
messages to satisfy maxMessages
.
Setting this parameter to true
is not recommended as it may result in long delays in message delivery.public org.springframework.util.concurrent.ListenableFuture<List<AcknowledgeablePubsubMessage>> pullAsync(String subscription, Integer maxMessages, Boolean returnImmediately)
PubSubSubscriberOperations
pullAsync
in interface PubSubSubscriberOperations
subscription
- canonical subscription name, e.g., "subscriptionName", or the fully-qualified
subscription name in the projects/<project_name>/subscriptions/<subscription_name>
formatmaxMessages
- the maximum number of pulled messages. If this value is null then
up to Integer.MAX_VALUE messages will be requested.returnImmediately
- returns immediately even if subscription doesn't contain enough
messages to satisfy maxMessages
.
Setting this parameter to true
is not recommended as it may result in long delays in message delivery.public <T> List<ConvertedAcknowledgeablePubsubMessage<T>> pullAndConvert(String subscription, Integer maxMessages, Boolean returnImmediately, Class<T> payloadType)
PubSubSubscriberOperations
pullAndConvert
in interface PubSubSubscriberOperations
T
- the type of the payloadsubscription
- canonical subscription name, e.g., "subscriptionName", or the fully-qualified
subscription name in the projects/<project_name>/subscriptions/<subscription_name>
formatmaxMessages
- the maximum number of pulled messages. If this value is null then
up to Integer.MAX_VALUE messages will be requested.returnImmediately
- returns immediately even if subscription doesn't contain enough
messages to satisfy maxMessages
.
Setting this parameter to true
is not recommended as it may result in long delays in message delivery.payloadType
- the type to which the payload of the Pub/Sub messages should be convertedpublic <T> org.springframework.util.concurrent.ListenableFuture<List<ConvertedAcknowledgeablePubsubMessage<T>>> pullAndConvertAsync(String subscription, Integer maxMessages, Boolean returnImmediately, Class<T> payloadType)
PubSubSubscriberOperations
pullAndConvertAsync
in interface PubSubSubscriberOperations
T
- the type of the payloadsubscription
- canonical subscription name, e.g., "subscriptionName", or the fully-qualified
subscription name in the projects/<project_name>/subscriptions/<subscription_name>
formatmaxMessages
- the maximum number of pulled messages. If this value is null then
up to Integer.MAX_VALUE messages will be requested.returnImmediately
- returns immediately even if subscription doesn't contain enough
messages to satisfy maxMessages
.
Setting this parameter to true
is not recommended as it may result in long delays in message delivery.payloadType
- the type to which the payload of the Pub/Sub messages should be convertedpublic List<com.google.pubsub.v1.PubsubMessage> pullAndAck(String subscription, Integer maxMessages, Boolean returnImmediately)
PubSubSubscriberOperations
pullAndAck
in interface PubSubSubscriberOperations
subscription
- canonical subscription name, e.g., "subscriptionName", or the fully-qualified
subscription name in the projects/<project_name>/subscriptions/<subscription_name>
formatmaxMessages
- the maximum number of pulled messages. If this value is null then
up to Integer.MAX_VALUE messages will be requested.returnImmediately
- returns immediately even if subscription doesn't contain enough
messages to satisfy maxMessages
.
Setting this parameter to true
is not recommended as it may result in long delays in message delivery.public org.springframework.util.concurrent.ListenableFuture<List<com.google.pubsub.v1.PubsubMessage>> pullAndAckAsync(String subscription, Integer maxMessages, Boolean returnImmediately)
PubSubSubscriberOperations
pullAndAckAsync
in interface PubSubSubscriberOperations
subscription
- canonical subscription name, e.g., "subscriptionName", or the fully-qualified
subscription name in the projects/<project_name>/subscriptions/<subscription_name>
formatmaxMessages
- the maximum number of pulled messages. If this value is null then
up to Integer.MAX_VALUE messages will be requested.returnImmediately
- returns immediately even if subscription doesn't contain enough
messages to satisfy maxMessages
.
Setting this parameter to true
is not recommended as it may result in long delays in message delivery.public com.google.pubsub.v1.PubsubMessage pullNext(String subscription)
PubSubSubscriberOperations
pullNext
in interface PubSubSubscriberOperations
subscription
- canonical subscription name, e.g., "subscriptionName", or the fully-qualified
subscription name in the projects/<project_name>/subscriptions/<subscription_name>
formatnull
if none exists in the subscriptionpublic org.springframework.util.concurrent.ListenableFuture<com.google.pubsub.v1.PubsubMessage> pullNextAsync(String subscription)
PubSubSubscriberOperations
pullNextAsync
in interface PubSubSubscriberOperations
subscription
- canonical subscription name, e.g., "subscriptionName", or the fully-qualified
subscription name in the projects/<project_name>/subscriptions/<subscription_name>
formatnull
if none exists in the subscriptionpublic org.springframework.util.concurrent.ListenableFuture<Void> ack(Collection<? extends AcknowledgeablePubsubMessage> acknowledgeablePubsubMessages)
PubSubSubscriberOperations
ack
in interface PubSubSubscriberOperations
acknowledgeablePubsubMessages
- messages to be acknowledgedListenableFuture<Void>
the ListenableFuture for the asynchronous executionpublic org.springframework.util.concurrent.ListenableFuture<Void> nack(Collection<? extends AcknowledgeablePubsubMessage> acknowledgeablePubsubMessages)
PubSubSubscriberOperations
nack
in interface PubSubSubscriberOperations
acknowledgeablePubsubMessages
- messages to be negatively acknowledgedListenableFuture<Void>
the ListenableFuture for the asynchronous executionpublic org.springframework.util.concurrent.ListenableFuture<Void> modifyAckDeadline(Collection<? extends AcknowledgeablePubsubMessage> acknowledgeablePubsubMessages, int ackDeadlineSeconds)
PubSubSubscriberOperations
modifyAckDeadline
in interface PubSubSubscriberOperations
acknowledgeablePubsubMessages
- messages to be modifiedackDeadlineSeconds
- the new ack deadline in seconds. A deadline of 0 effectively nacks the messages.ListenableFuture<Void>
the ListenableFuture for the asynchronous executionpublic PublisherFactory getPublisherFactory()
public SubscriberFactory getSubscriberFactory()
Copyright © 2021. All rights reserved.