Package io.atleon.rabbitmq
Class AloRabbitMQSender<T>
- java.lang.Object
-
- io.atleon.rabbitmq.AloRabbitMQSender<T>
-
- Type Parameters:
T- outbound message body type (to be serialized)
- All Implemented Interfaces:
Closeable,AutoCloseable
public class AloRabbitMQSender<T> extends Object implements Closeable
A reactive RabbitMQ sender with at-least-once semantics for producing messages to exchanges in a RabbitMQ clusterAt most one instance of a
Senderis kept and can be closed upon invokingclose(). However, if after closing, more sent Publishers are subscribed to, a new Sender instance will be created and cached.
-
-
Field Summary
Fields Modifier and Type Field Description static StringBODY_SERIALIZER_CONFIGAn implementation ofBodySerializerused to serialize message bodiesstatic StringCONFIG_PREFIXPrefix used on all AloRabbitMQSender-specific configurationsstatic StringINTERCEPTORS_CONFIGOptional List (comma separated orList) of implementations ofRabbitMQMessageSendInterceptor(by class name) to apply to outboundRabbitMQMessages
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description voidclose()voidclose(Object reason)static <T> AloRabbitMQSender<T>from(RabbitMQConfigSource configSource)Function<org.reactivestreams.Publisher<io.atleon.core.Alo<T>>,io.atleon.core.AloFlux<RabbitMQSenderResult<T>>>sendAloBodies(RabbitMQMessageCreator<T> messageCreator)io.atleon.core.AloFlux<RabbitMQSenderResult<T>>sendAloBodies(org.reactivestreams.Publisher<io.atleon.core.Alo<T>> aloBodies, RabbitMQMessageCreator<T> messageCreator)io.atleon.core.AloFlux<RabbitMQSenderResult<RabbitMQMessage<T>>>sendAloMessages(org.reactivestreams.Publisher<io.atleon.core.Alo<RabbitMQMessage<T>>> aloMessages)Function<org.reactivestreams.Publisher<T>,reactor.core.publisher.Flux<RabbitMQSenderResult<T>>>sendBodies(RabbitMQMessageCreator<T> messageCreator)reactor.core.publisher.Flux<RabbitMQSenderResult<T>>sendBodies(org.reactivestreams.Publisher<T> bodies, RabbitMQMessageCreator<T> messageCreator)reactor.core.publisher.Flux<RabbitMQSenderResult<RabbitMQMessage<T>>>sendMessages(org.reactivestreams.Publisher<RabbitMQMessage<T>> messages)
-
-
-
Field Detail
-
CONFIG_PREFIX
public static final String CONFIG_PREFIX
Prefix used on all AloRabbitMQSender-specific configurations- See Also:
- Constant Field Values
-
INTERCEPTORS_CONFIG
public static final String INTERCEPTORS_CONFIG
Optional List (comma separated orList) of implementations ofRabbitMQMessageSendInterceptor(by class name) to apply to outboundRabbitMQMessages- See Also:
- Constant Field Values
-
BODY_SERIALIZER_CONFIG
public static final String BODY_SERIALIZER_CONFIG
An implementation ofBodySerializerused to serialize message bodies- See Also:
- Constant Field Values
-
-
Method Detail
-
from
public static <T> AloRabbitMQSender<T> from(RabbitMQConfigSource configSource)
-
sendBodies
public Function<org.reactivestreams.Publisher<T>,reactor.core.publisher.Flux<RabbitMQSenderResult<T>>> sendBodies(RabbitMQMessageCreator<T> messageCreator)
-
sendBodies
public reactor.core.publisher.Flux<RabbitMQSenderResult<T>> sendBodies(org.reactivestreams.Publisher<T> bodies, RabbitMQMessageCreator<T> messageCreator)
-
sendMessages
public reactor.core.publisher.Flux<RabbitMQSenderResult<RabbitMQMessage<T>>> sendMessages(org.reactivestreams.Publisher<RabbitMQMessage<T>> messages)
-
sendAloBodies
public Function<org.reactivestreams.Publisher<io.atleon.core.Alo<T>>,io.atleon.core.AloFlux<RabbitMQSenderResult<T>>> sendAloBodies(RabbitMQMessageCreator<T> messageCreator)
-
sendAloBodies
public io.atleon.core.AloFlux<RabbitMQSenderResult<T>> sendAloBodies(org.reactivestreams.Publisher<io.atleon.core.Alo<T>> aloBodies, RabbitMQMessageCreator<T> messageCreator)
-
sendAloMessages
public io.atleon.core.AloFlux<RabbitMQSenderResult<RabbitMQMessage<T>>> sendAloMessages(org.reactivestreams.Publisher<io.atleon.core.Alo<RabbitMQMessage<T>>> aloMessages)
-
close
public void close(Object reason)
-
close
public void close()
- Specified by:
closein interfaceAutoCloseable- Specified by:
closein interfaceCloseable
-
-