public interface MessageLogReceiverEndpoint extends MessageReceiverEndpoint
MessageEndpoint endpoint of a Message Channel that matches random-access like reading of
messages using ChannelPositions.
MessageLogReceiverEndpoints are endpoints for Publish-Subscribe Channels:
| Modifier and Type | Method and Description |
|---|---|
default java.util.concurrent.CompletableFuture<ChannelPosition> |
consume(ChannelPosition startFrom)
Beginning at the
startFrom position, messages are consumed from the message log, until the
stopCondition is true. |
java.util.concurrent.CompletableFuture<ChannelPosition> |
consumeUntil(ChannelPosition startFrom,
java.util.function.Predicate<ShardResponse> stopCondition)
Beginning at the
startFrom position, messages are consumed from the message log, until the
stopCondition is true. |
void |
stop()
Stops consumption of messages and shuts down the
MessageLogReceiverEndpoint. |
getMessageDispatcher, registergetChannelName, getEndpointType, getInterceptorChain, intercept@Nonnull default java.util.concurrent.CompletableFuture<ChannelPosition> consume(@Nonnull ChannelPosition startFrom)
startFrom position, messages are consumed from the message log, until the
stopCondition is true.
Takes zero or more messages from the channel, calls MessageEndpoint.intercept(Message) for every message, and notifies
the registered consumers with the intercepted message, or drops the message, if intercept returns null.
Consumption starts with the first message after startFrom and finishes when either the
stopCondition is met, or the application is shutting down.
The returned ChannelPosition is the position of the last message that was processed by the
MessageLogReceiverEndpoint - whether it was dropped or consumed.
The registered consumers are used as a
callback for consumed messages. A MessageDispatcher can be used as a consumer, if multiple
consumers, or consumers with message payloads other than String are
required.
startFrom - the start position used to proceed message consumption@Nonnull java.util.concurrent.CompletableFuture<ChannelPosition> consumeUntil(@Nonnull ChannelPosition startFrom, @Nonnull java.util.function.Predicate<ShardResponse> stopCondition)
startFrom position, messages are consumed from the message log, until the
stopCondition is true.
If the message-log is sharded, the predicate must be true for every shard: otherwise, message consumption would continue on other shards.
Takes zero or more messages from the channel, calls MessageEndpoint.intercept(Message) for every message, and
notifies the registered consumers with the intercepted message, or drops the message, if intercept
returns null.
Consumption starts with the first message after startFrom and finishes when either the
stopCondition is met, or the application is shutting down.
The returned ChannelPosition is the position of the last message that was processed by the
MessageLogReceiverEndpoint - whether it was dropped or consumed.
The registered consumers are used as a
callback for consumed messages. A MessageDispatcher can be used as a consumer, if multiple
consumers, or consumers with message payloads other than String are
required.
startFrom - the start position used to proceed message consumptionstopCondition - the predicate used to test if message consumption should be stopped. In most cases, the
predicates defined in StopCondition should be sufficient.void stop()
MessageLogReceiverEndpoint.