Class SubscriptionCommandSender
java.lang.Object
io.camunda.zeebe.engine.processing.message.command.SubscriptionCommandSender
Send commands via the subscription endpoint. The commands are send as single messages (instead of request-response).
To ensure that a command is received, each command has an ACK command which is send by the receiver.
+---------------------------------------------------------------------------------------------------------------------------------------+ | Message Partition | | | +-----------^----------------+---------------------------+----------------------^-------------------------^------------------+----------+ | | | | | | +-------+------+ +------+--------+ +----------+---------+ +---------+---------+ +-------+-------+ +-------+--------+ | Open Message | | Open Process | | Correlate Process | | Correlate Message | | Close Message | | Close Process | | Subscription | | Instance Sub | | Instance Sub | | Subscription | | Subscription | | Instance Sub | +-------+------+ +------+--------+ +----------+---------+ +---------+---------+ +-------+-------+ +-------+--------+ | | | | | | +----------+----------------v---------------------------v----------------------+-------------------------+------------------v----------+ | | | Process Instance Partition | +--------------------------------------------------------------------------------------------------------------------------------------+
-
Constructor Summary
ConstructorDescriptionSubscriptionCommandSender
(int senderPartition, InterPartitionCommandSender interPartitionCommandSender) -
Method Summary
Modifier and TypeMethodDescriptionboolean
closeMessageSubscription
(int subscriptionPartitionId, long processInstanceKey, long elementInstanceKey, org.agrona.DirectBuffer messageName) boolean
closeProcessMessageSubscription
(long processInstanceKey, long elementInstanceKey, org.agrona.DirectBuffer messageName) boolean
correlateMessageSubscription
(int subscriptionPartitionId, long processInstanceKey, long elementInstanceKey, org.agrona.DirectBuffer bpmnProcessId, org.agrona.DirectBuffer messageName) boolean
correlateProcessMessageSubscription
(long processInstanceKey, long elementInstanceKey, org.agrona.DirectBuffer bpmnProcessId, org.agrona.DirectBuffer messageName, long messageKey, org.agrona.DirectBuffer variables, org.agrona.DirectBuffer correlationKey) boolean
openMessageSubscription
(int subscriptionPartitionId, long processInstanceKey, long elementInstanceKey, org.agrona.DirectBuffer bpmnProcessId, org.agrona.DirectBuffer messageName, org.agrona.DirectBuffer correlationKey, boolean closeOnCorrelate) boolean
openProcessMessageSubscription
(long processInstanceKey, long elementInstanceKey, org.agrona.DirectBuffer messageName, boolean closeOnCorrelate) boolean
rejectCorrelateMessageSubscription
(long processInstanceKey, org.agrona.DirectBuffer bpmnProcessId, long messageKey, org.agrona.DirectBuffer messageName, org.agrona.DirectBuffer correlationKey) void
sendDirectCloseMessageSubscription
(int subscriptionPartitionId, long processInstanceKey, long elementInstanceKey, org.agrona.DirectBuffer messageName) Sends the close message subscription command directly to the subscription partition.void
sendDirectCorrelateProcessMessageSubscription
(long processInstanceKey, long elementInstanceKey, org.agrona.DirectBuffer bpmnProcessId, org.agrona.DirectBuffer messageName, long messageKey, org.agrona.DirectBuffer variables, org.agrona.DirectBuffer correlationKey) Sends the correlate process message subscription command directly to the subscribed partition.void
sendDirectOpenMessageSubscription
(int subscriptionPartitionId, long processInstanceKey, long elementInstanceKey, org.agrona.DirectBuffer bpmnProcessId, org.agrona.DirectBuffer messageName, org.agrona.DirectBuffer correlationKey, boolean closeOnCorrelate) Sends the open message subscription command directly to the subscription partition.void
setWriters
(Writers writers)
-
Constructor Details
-
SubscriptionCommandSender
public SubscriptionCommandSender(int senderPartition, InterPartitionCommandSender interPartitionCommandSender)
-
-
Method Details
-
openMessageSubscription
public boolean openMessageSubscription(int subscriptionPartitionId, long processInstanceKey, long elementInstanceKey, org.agrona.DirectBuffer bpmnProcessId, org.agrona.DirectBuffer messageName, org.agrona.DirectBuffer correlationKey, boolean closeOnCorrelate) -
sendDirectOpenMessageSubscription
public void sendDirectOpenMessageSubscription(int subscriptionPartitionId, long processInstanceKey, long elementInstanceKey, org.agrona.DirectBuffer bpmnProcessId, org.agrona.DirectBuffer messageName, org.agrona.DirectBuffer correlationKey, boolean closeOnCorrelate) Sends the open message subscription command directly to the subscription partition. This differs to ${link openMessageSubscription}, as the sending/writing is not delayed. Usually useful or used in scheduled tasks, which want to directly send commands.- Parameters:
subscriptionPartitionId
- the partition Id which should receive the commandprocessInstanceKey
- the related process instance keyelementInstanceKey
- the related element instance keybpmnProcessId
- the related process idmessageName
- the name of the message for which the subscription should be correlatedcorrelationKey
- the correlation key for which the message should be correlatedcloseOnCorrelate
- indicates whether the subscription should be closed after correlation
-
openProcessMessageSubscription
public boolean openProcessMessageSubscription(long processInstanceKey, long elementInstanceKey, org.agrona.DirectBuffer messageName, boolean closeOnCorrelate) -
correlateProcessMessageSubscription
public boolean correlateProcessMessageSubscription(long processInstanceKey, long elementInstanceKey, org.agrona.DirectBuffer bpmnProcessId, org.agrona.DirectBuffer messageName, long messageKey, org.agrona.DirectBuffer variables, org.agrona.DirectBuffer correlationKey) -
sendDirectCorrelateProcessMessageSubscription
public void sendDirectCorrelateProcessMessageSubscription(long processInstanceKey, long elementInstanceKey, org.agrona.DirectBuffer bpmnProcessId, org.agrona.DirectBuffer messageName, long messageKey, org.agrona.DirectBuffer variables, org.agrona.DirectBuffer correlationKey) Sends the correlate process message subscription command directly to the subscribed partition. This differs to ${link correlateProcessMessageSubscription}, as the sending/writing is not delayed. Usually useful or used in scheduled tasks, which want to directly send commands.- Parameters:
processInstanceKey
- the related process instance keyelementInstanceKey
- the related element instance keybpmnProcessId
- the related process idmessageName
- the name of the message for which the subscription should be correlatedmessageKey
- the key of the message for which the subscription should be correlatedvariables
- the variables of the messagecorrelationKey
- the correlation key for which the message should be correlated
-
correlateMessageSubscription
public boolean correlateMessageSubscription(int subscriptionPartitionId, long processInstanceKey, long elementInstanceKey, org.agrona.DirectBuffer bpmnProcessId, org.agrona.DirectBuffer messageName) -
closeMessageSubscription
public boolean closeMessageSubscription(int subscriptionPartitionId, long processInstanceKey, long elementInstanceKey, org.agrona.DirectBuffer messageName) -
sendDirectCloseMessageSubscription
public void sendDirectCloseMessageSubscription(int subscriptionPartitionId, long processInstanceKey, long elementInstanceKey, org.agrona.DirectBuffer messageName) Sends the close message subscription command directly to the subscription partition. This differs to ${link closeMessageSubscription}, as the sending/writing is not delayed. Usually useful or used in scheduled tasks, which want to directly send commands.- Parameters:
subscriptionPartitionId
- the partition Id which should receive the commandprocessInstanceKey
- the related process instance keyelementInstanceKey
- the related element instance keymessageName
- the name of the message for which the subscription should be closed
-
closeProcessMessageSubscription
public boolean closeProcessMessageSubscription(long processInstanceKey, long elementInstanceKey, org.agrona.DirectBuffer messageName) -
rejectCorrelateMessageSubscription
public boolean rejectCorrelateMessageSubscription(long processInstanceKey, org.agrona.DirectBuffer bpmnProcessId, long messageKey, org.agrona.DirectBuffer messageName, org.agrona.DirectBuffer correlationKey) -
setWriters
-