Class DbMessageSubscriptionState
java.lang.Object
io.camunda.zeebe.engine.state.message.DbMessageSubscriptionState
- All Implemented Interfaces:
MessageSubscriptionState
,PendingMessageSubscriptionState
,MutableMessageSubscriptionState
,StreamProcessorLifecycleAware
public final class DbMessageSubscriptionState
extends Object
implements MutableMessageSubscriptionState, PendingMessageSubscriptionState, StreamProcessorLifecycleAware
-
Nested Class Summary
Nested classes/interfaces inherited from interface io.camunda.zeebe.engine.state.immutable.MessageSubscriptionState
MessageSubscriptionState.MessageSubscriptionVisitor
-
Constructor Summary
ConstructorsConstructorDescriptionDbMessageSubscriptionState
(ZeebeDb<ZbColumnFamilies> zeebeDb, TransactionContext transactionContext, TransientPendingSubscriptionState transientState) -
Method Summary
Modifier and TypeMethodDescriptionboolean
existSubscriptionForElementInstance
(long elementInstanceKey, org.agrona.DirectBuffer messageName) get
(long elementInstanceKey, org.agrona.DirectBuffer messageName) void
void
Should be called when a pending subscription is sent out.void
put
(long key, MessageSubscriptionRecord record) boolean
remove
(long elementInstanceKey, org.agrona.DirectBuffer messageName) void
remove
(MessageSubscription subscription) void
updateToCorrelatedState
(MessageSubscription subscription) void
void
visitPending
(long deadline, MessageSubscriptionState.MessageSubscriptionVisitor visitor) Visits all pending message subscriptions where a command hasn't been sent out since a given deadline.void
visitSubscriptions
(String tenantId, org.agrona.DirectBuffer messageName, org.agrona.DirectBuffer correlationKey, MessageSubscriptionState.MessageSubscriptionVisitor visitor) Visits the message subscriptions that match a given tenant, message name, and correlation key.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface io.camunda.zeebe.engine.state.immutable.PendingMessageSubscriptionState
onSent
Methods inherited from interface io.camunda.zeebe.stream.api.StreamProcessorLifecycleAware
onClose, onFailed, onPaused, onResumed
-
Constructor Details
-
DbMessageSubscriptionState
public DbMessageSubscriptionState(ZeebeDb<ZbColumnFamilies> zeebeDb, TransactionContext transactionContext, TransientPendingSubscriptionState transientState)
-
-
Method Details
-
onRecovered
- Specified by:
onRecovered
in interfaceStreamProcessorLifecycleAware
-
get
- Specified by:
get
in interfaceMessageSubscriptionState
-
visitSubscriptions
public void visitSubscriptions(String tenantId, org.agrona.DirectBuffer messageName, org.agrona.DirectBuffer correlationKey, MessageSubscriptionState.MessageSubscriptionVisitor visitor) Description copied from interface:MessageSubscriptionState
Visits the message subscriptions that match a given tenant, message name, and correlation key.- Specified by:
visitSubscriptions
in interfaceMessageSubscriptionState
-
existSubscriptionForElementInstance
public boolean existSubscriptionForElementInstance(long elementInstanceKey, org.agrona.DirectBuffer messageName) - Specified by:
existSubscriptionForElementInstance
in interfaceMessageSubscriptionState
-
put
- Specified by:
put
in interfaceMutableMessageSubscriptionState
-
updateToCorrelatingState
- Specified by:
updateToCorrelatingState
in interfaceMutableMessageSubscriptionState
-
remove
public boolean remove(long elementInstanceKey, org.agrona.DirectBuffer messageName) - Specified by:
remove
in interfaceMutableMessageSubscriptionState
-
remove
- Specified by:
remove
in interfaceMutableMessageSubscriptionState
-
visitPending
public void visitPending(long deadline, MessageSubscriptionState.MessageSubscriptionVisitor visitor) Description copied from interface:PendingMessageSubscriptionState
Visits all pending message subscriptions where a command hasn't been sent out since a given deadline. The visitor is called for each subscription, from the oldest to the newest.- Specified by:
visitPending
in interfacePendingMessageSubscriptionState
-
onSent
Description copied from interface:PendingMessageSubscriptionState
Should be called when a pending subscription is sent out. This is used to keep track of the last time a command was sent out for a subscription. Freshly sent-out subscriptions are not visited byPendingMessageSubscriptionState.visitPending(long, MessageSubscriptionVisitor)
.- Specified by:
onSent
in interfacePendingMessageSubscriptionState
-