Class ReactivePulsarTemplate<T>
java.lang.Object
org.springframework.pulsar.reactive.core.ReactivePulsarTemplate<T>
- Type Parameters:
T- the message payload type
- All Implemented Interfaces:
ReactivePulsarOperations<T>
A template for executing high-level reactive Pulsar operations.
- Author:
- Christophe Bornet
-
Nested Class Summary
Nested classes/interfaces inherited from interface org.springframework.pulsar.reactive.core.ReactivePulsarOperations
ReactivePulsarOperations.SendManyMessageBuilder<T>, ReactivePulsarOperations.SendMessageBuilder<O,T>, ReactivePulsarOperations.SendOneMessageBuilder<T> -
Constructor Summary
ConstructorsConstructorDescriptionReactivePulsarTemplate(ReactivePulsarSenderFactory<T> reactiveMessageSenderFactory) Construct a template instance that uses the default schema resolver and topic resolver.ReactivePulsarTemplate(ReactivePulsarSenderFactory<T> reactiveMessageSenderFactory, SchemaResolver schemaResolver, TopicResolver topicResolver) Construct a template instance with a custom schema resolver and a custom topic resolver. -
Method Summary
Modifier and TypeMethodDescriptionnewMessage(T message) Create abuilderfor configuring and sending a message reactively.newMessages(org.reactivestreams.Publisher<org.apache.pulsar.reactive.client.api.MessageSpec<T>> messages) Create abuilderfor configuring and sending multiple messages reactively.reactor.core.publisher.Flux<org.apache.pulsar.reactive.client.api.MessageSendResult<T>>send(String topic, org.reactivestreams.Publisher<org.apache.pulsar.reactive.client.api.MessageSpec<T>> messages) Sends multiple messages to the specified topic in a reactive manner.reactor.core.publisher.Flux<org.apache.pulsar.reactive.client.api.MessageSendResult<T>>send(String topic, org.reactivestreams.Publisher<org.apache.pulsar.reactive.client.api.MessageSpec<T>> messages, org.apache.pulsar.client.api.Schema<T> schema) Sends multiple messages to the specified topic in a reactive manner.reactor.core.publisher.Mono<org.apache.pulsar.client.api.MessageId>Sends a message to the specified topic in a reactive manner.reactor.core.publisher.Mono<org.apache.pulsar.client.api.MessageId>Sends a message to the specified topic in a reactive manner.reactor.core.publisher.Flux<org.apache.pulsar.reactive.client.api.MessageSendResult<T>>Sends multiple messages to the default topic in a reactive manner.reactor.core.publisher.Flux<org.apache.pulsar.reactive.client.api.MessageSendResult<T>>send(org.reactivestreams.Publisher<org.apache.pulsar.reactive.client.api.MessageSpec<T>> messages, org.apache.pulsar.client.api.Schema<T> schema) Sends multiple messages to the default topic in a reactive manner.reactor.core.publisher.Mono<org.apache.pulsar.client.api.MessageId>Sends a message to the default topic in a reactive manner.reactor.core.publisher.Mono<org.apache.pulsar.client.api.MessageId>Sends a message to the specified topic in a reactive manner.
-
Constructor Details
-
ReactivePulsarTemplate
Construct a template instance that uses the default schema resolver and topic resolver.- Parameters:
reactiveMessageSenderFactory- the factory used to create the backing Pulsar reactive senders
-
ReactivePulsarTemplate
public ReactivePulsarTemplate(ReactivePulsarSenderFactory<T> reactiveMessageSenderFactory, SchemaResolver schemaResolver, TopicResolver topicResolver) Construct a template instance with a custom schema resolver and a custom topic resolver.- Parameters:
reactiveMessageSenderFactory- the factory used to create the backing PulsarschemaResolver- the schema resolver to usetopicResolver- the topic resolver to use
-
-
Method Details
-
send
public reactor.core.publisher.Mono<org.apache.pulsar.client.api.MessageId> send(@Nullable T message) Description copied from interface:ReactivePulsarOperationsSends a message to the default topic in a reactive manner.- Specified by:
sendin interfaceReactivePulsarOperations<T>- Parameters:
message- the message to send- Returns:
- the id assigned by the broker to the published message
-
send
public reactor.core.publisher.Mono<org.apache.pulsar.client.api.MessageId> send(@Nullable T message, @Nullable org.apache.pulsar.client.api.Schema<T> schema) Description copied from interface:ReactivePulsarOperationsSends a message to the specified topic in a reactive manner. default topic- Specified by:
sendin interfaceReactivePulsarOperations<T>- Parameters:
message- the message to sendschema- the schema to use ornullto use the default schema resolution- Returns:
- the id assigned by the broker to the published message
-
send
public reactor.core.publisher.Mono<org.apache.pulsar.client.api.MessageId> send(@Nullable String topic, @Nullable T message) Description copied from interface:ReactivePulsarOperationsSends a message to the specified topic in a reactive manner.- Specified by:
sendin interfaceReactivePulsarOperations<T>- Parameters:
topic- the topic to send the message to ornullto send to the default topicmessage- the message to send- Returns:
- the id assigned by the broker to the published message
-
send
public reactor.core.publisher.Mono<org.apache.pulsar.client.api.MessageId> send(@Nullable String topic, @Nullable T message, @Nullable org.apache.pulsar.client.api.Schema<T> schema) Description copied from interface:ReactivePulsarOperationsSends a message to the specified topic in a reactive manner.- Specified by:
sendin interfaceReactivePulsarOperations<T>- Parameters:
topic- the topic to send the message to ornullto send to the default topicmessage- the message to sendschema- the schema to use ornullto use the default schema resolution- Returns:
- the id assigned by the broker to the published message
-
send
public reactor.core.publisher.Flux<org.apache.pulsar.reactive.client.api.MessageSendResult<T>> send(org.reactivestreams.Publisher<org.apache.pulsar.reactive.client.api.MessageSpec<T>> messages) Description copied from interface:ReactivePulsarOperationsSends multiple messages to the default topic in a reactive manner.- Specified by:
sendin interfaceReactivePulsarOperations<T>- Parameters:
messages- the messages to send- Returns:
- the ids assigned by the broker to the published messages in the same order as they were sent
-
send
public reactor.core.publisher.Flux<org.apache.pulsar.reactive.client.api.MessageSendResult<T>> send(org.reactivestreams.Publisher<org.apache.pulsar.reactive.client.api.MessageSpec<T>> messages, @Nullable org.apache.pulsar.client.api.Schema<T> schema) Description copied from interface:ReactivePulsarOperationsSends multiple messages to the default topic in a reactive manner.- Specified by:
sendin interfaceReactivePulsarOperations<T>- Parameters:
messages- the messages to sendschema- the schema to use ornullto use the default schema resolution- Returns:
- the ids assigned by the broker to the published messages in the same order as they were sent
-
send
public reactor.core.publisher.Flux<org.apache.pulsar.reactive.client.api.MessageSendResult<T>> send(@Nullable String topic, org.reactivestreams.Publisher<org.apache.pulsar.reactive.client.api.MessageSpec<T>> messages) Description copied from interface:ReactivePulsarOperationsSends multiple messages to the specified topic in a reactive manner.- Specified by:
sendin interfaceReactivePulsarOperations<T>- Parameters:
topic- the topic to send the message to ornullto send to the default topicmessages- the messages to send- Returns:
- the ids assigned by the broker to the published messages in the same order as they were sent
-
send
public reactor.core.publisher.Flux<org.apache.pulsar.reactive.client.api.MessageSendResult<T>> send(@Nullable String topic, org.reactivestreams.Publisher<org.apache.pulsar.reactive.client.api.MessageSpec<T>> messages, @Nullable org.apache.pulsar.client.api.Schema<T> schema) Description copied from interface:ReactivePulsarOperationsSends multiple messages to the specified topic in a reactive manner.- Specified by:
sendin interfaceReactivePulsarOperations<T>- Parameters:
topic- the topic to send the message to ornullto send to the default topicmessages- the messages to sendschema- the schema to use ornullto use the default schema resolution- Returns:
- the ids assigned by the broker to the published messages in the same order as they were sent
-
newMessage
Description copied from interface:ReactivePulsarOperationsCreate abuilderfor configuring and sending a message reactively.- Specified by:
newMessagein interfaceReactivePulsarOperations<T>- Parameters:
message- the payload of the message- Returns:
- the builder to configure and send the message
-
newMessages
public ReactivePulsarOperations.SendManyMessageBuilder<T> newMessages(org.reactivestreams.Publisher<org.apache.pulsar.reactive.client.api.MessageSpec<T>> messages) Description copied from interface:ReactivePulsarOperationsCreate abuilderfor configuring and sending multiple messages reactively.- Specified by:
newMessagesin interfaceReactivePulsarOperations<T>- Parameters:
messages- the messages to send- Returns:
- the builder to configure and send the message
-