public class DurableSubscriptionModel extends java.lang.Object implements PositionAwareSubscriptionModel, DelegatingSubscriptionModel
SubscriptionModel and with a SubscriptionPositionStorage to automatically persist
the subscription position after each successful call to the "action" method
(i.e. when the consumer in this method Subscribable.subscribe(String, Consumer) has completed successfully),
thus making the subscription durable.
Note that this implementation stores the subscription position after _every_ action. If you have a lot of events and duplication is not
that much of a deal, consider changing this behavior by supplying an instance of DurableSubscriptionModelConfig.
| Constructor and Description |
|---|
DurableSubscriptionModel(PositionAwareSubscriptionModel subscriptionModel,
SubscriptionPositionStorage storage)
Create a subscription that combines a
PositionAwareSubscriptionModel with a SubscriptionPositionStorage to automatically
store the subscription after each successful call to action (The "consumer" in Subscribable.subscribe(String, Consumer)). |
DurableSubscriptionModel(PositionAwareSubscriptionModel subscriptionModel,
SubscriptionPositionStorage storage,
DurableSubscriptionModelConfig config)
Create a subscription that combines a
PositionAwareSubscriptionModel with a SubscriptionPositionStorage to automatically
store the subscription when the predicate defined in DurableSubscriptionModelConfig.persistCloudEventPositionPredicate is fulfilled. |
| Modifier and Type | Method and Description |
|---|---|
void |
cancelSubscription(java.lang.String subscriptionId)
Cancel a subscription.
|
PositionAwareSubscriptionModel |
getDelegatedSubscriptionModel() |
org.occurrent.subscription.SubscriptionPosition |
globalSubscriptionPosition() |
boolean |
isPaused(java.lang.String subscriptionId) |
boolean |
isRunning() |
boolean |
isRunning(java.lang.String subscriptionId) |
void |
pauseSubscription(java.lang.String subscriptionId) |
Subscription |
resumeSubscription(java.lang.String subscriptionId) |
void |
shutdown() |
void |
start() |
void |
stop() |
Subscription |
subscribe(java.lang.String subscriptionId,
org.occurrent.subscription.SubscriptionFilter filter,
org.occurrent.subscription.StartAt startAt,
java.util.function.Consumer<io.cloudevents.CloudEvent> action) |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitsubscribe, subscribe, subscribegetDelegatedSubscriptionModelRecursivelypublic DurableSubscriptionModel(PositionAwareSubscriptionModel subscriptionModel, SubscriptionPositionStorage storage)
PositionAwareSubscriptionModel with a SubscriptionPositionStorage to automatically
store the subscription after each successful call to action (The "consumer" in Subscribable.subscribe(String, Consumer)).subscriptionModel - The subscription that will read events from the event storestorage - The SubscriptionPositionStorage that'll be used to persist the stream positionpublic DurableSubscriptionModel(PositionAwareSubscriptionModel subscriptionModel, SubscriptionPositionStorage storage, DurableSubscriptionModelConfig config)
PositionAwareSubscriptionModel with a SubscriptionPositionStorage to automatically
store the subscription when the predicate defined in DurableSubscriptionModelConfig.persistCloudEventPositionPredicate is fulfilled.subscriptionModel - The subscription that will read events from the event storestorage - The SubscriptionPositionStorage that'll be used to persist the stream positionpublic Subscription subscribe(java.lang.String subscriptionId, org.occurrent.subscription.SubscriptionFilter filter, org.occurrent.subscription.StartAt startAt, java.util.function.Consumer<io.cloudevents.CloudEvent> action)
subscribe in interface Subscribablepublic void stop()
stop in interface SubscriptionModelLifeCyclepublic void start()
start in interface SubscriptionModelLifeCyclepublic boolean isRunning()
isRunning in interface SubscriptionModelLifeCyclepublic boolean isRunning(java.lang.String subscriptionId)
isRunning in interface SubscriptionModelLifeCyclepublic boolean isPaused(java.lang.String subscriptionId)
isPaused in interface SubscriptionModelLifeCyclepublic Subscription resumeSubscription(java.lang.String subscriptionId)
resumeSubscription in interface SubscriptionModelLifeCyclepublic void pauseSubscription(java.lang.String subscriptionId)
pauseSubscription in interface SubscriptionModelLifeCyclepublic void cancelSubscription(java.lang.String subscriptionId)
SubscriptionPositionStorage will also be removed.cancelSubscription in interface SubscriptionModelLifeCyclesubscriptionId - The subscription id to cancel@PreDestroy public void shutdown()
shutdown in interface SubscriptionModelLifeCyclepublic org.occurrent.subscription.SubscriptionPosition globalSubscriptionPosition()
globalSubscriptionPosition in interface PositionAwareSubscriptionModelpublic PositionAwareSubscriptionModel getDelegatedSubscriptionModel()
getDelegatedSubscriptionModel in interface DelegatingSubscriptionModelCopyright © 2021. All rights reserved.