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, InstantSource clock) -
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
update
(long key, MessageSubscriptionRecord record) 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, InstantSource clock)
-
-
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
-
update
- Specified by:
update
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
-