Package io.camunda.zeebe.client
Interface ZeebeClient
-
- All Superinterfaces:
AutoCloseable
,JobClient
- All Known Implementing Classes:
ZeebeClientImpl
public interface ZeebeClient extends AutoCloseable, JobClient
The client to communicate with a Zeebe broker/cluster.
-
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Modifier and Type Method Description void
close()
ZeebeClientConfiguration
getConfiguration()
ActivateJobsCommandStep1
newActivateJobsCommand()
Command to activate multiple jobs of a given type.CancelProcessInstanceCommandStep1
newCancelInstanceCommand(long processInstanceKey)
Command to cancel a process instance.static ZeebeClient
newClient()
static ZeebeClient
newClient(ZeebeClientConfiguration configuration)
static ZeebeClientBuilder
newClientBuilder()
static ZeebeClientCloudBuilderStep1
newCloudClientBuilder()
CreateProcessInstanceCommandStep1
newCreateInstanceCommand()
Command to create/start a new instance of a process.DeployProcessCommandStep1
newDeployCommand()
Command to deploy new processes.PublishMessageCommandStep1
newPublishMessageCommand()
Command to publish a message which can be correlated to a process instance.ResolveIncidentCommandStep1
newResolveIncidentCommand(long incidentKey)
Command to resolve an existing incident.SetVariablesCommandStep1
newSetVariablesCommand(long elementInstanceKey)
Command to set and/or update the variables of a given flow element (e.g.TopologyRequestStep1
newTopologyRequest()
Request the current cluster topology.UpdateRetriesJobCommandStep1
newUpdateRetriesCommand(long jobKey)
Command to update the retries of a job.JobWorkerBuilderStep1
newWorker()
Registers a new job worker for jobs of a given type.-
Methods inherited from interface io.camunda.zeebe.client.api.worker.JobClient
newCompleteCommand, newFailCommand, newThrowErrorCommand
-
-
-
-
Method Detail
-
newClient
static ZeebeClient newClient()
- Returns:
- a new Zeebe client with default configuration values. In order to customize
configuration, use the methods
newClientBuilder()
ornewClient(ZeebeClientConfiguration)
. SeeZeebeClientBuilder
for the configuration options and default values.
-
newClient
static ZeebeClient newClient(ZeebeClientConfiguration configuration)
- Returns:
- a new
ZeebeClient
using the provided configuration.
-
newClientBuilder
static ZeebeClientBuilder newClientBuilder()
- Returns:
- a builder to configure and create a new
ZeebeClient
.
-
newCloudClientBuilder
static ZeebeClientCloudBuilderStep1 newCloudClientBuilder()
- Returns:
- a builder with convenient methods to connect to the Camunda Cloud cluster.
-
newTopologyRequest
TopologyRequestStep1 newTopologyRequest()
Request the current cluster topology. Can be used to inspect which brokers are available at which endpoint and which broker is the leader of which partition.List<BrokerInfo> brokers = zeebeClient .newTopologyRequest() .send() .join() .getBrokers(); InetSocketAddress address = broker.getSocketAddress(); List<PartitionInfo> partitions = broker.getPartitions();
- Returns:
- the request where you must call
send()
-
getConfiguration
ZeebeClientConfiguration getConfiguration()
- Returns:
- the client's configuration
-
close
void close()
- Specified by:
close
in interfaceAutoCloseable
-
newDeployCommand
DeployProcessCommandStep1 newDeployCommand()
Command to deploy new processes.zeebeClient .newDeployCommand() .addResourceFile("~/wf/process1.bpmn") .addResourceFile("~/wf/process2.bpmn") .send();
- Returns:
- a builder for the command
-
newCreateInstanceCommand
CreateProcessInstanceCommandStep1 newCreateInstanceCommand()
Command to create/start a new instance of a process.zeebeClient .newCreateInstanceCommand() .bpmnProcessId("my-process") .latestVersion() .variables(json) .send();
- Returns:
- a builder for the command
-
newCancelInstanceCommand
CancelProcessInstanceCommandStep1 newCancelInstanceCommand(long processInstanceKey)
Command to cancel a process instance.zeebeClient .newCancelInstanceCommand(processInstanceKey) .send();
- Parameters:
processInstanceKey
- the key which identifies the corresponding process instance- Returns:
- a builder for the command
-
newSetVariablesCommand
SetVariablesCommandStep1 newSetVariablesCommand(long elementInstanceKey)
Command to set and/or update the variables of a given flow element (e.g. process instance, task, etc.)zeebeClient .newSetVariablesCommand(elementInstanceKey) .variables(json) .send();
- Parameters:
elementInstanceKey
- the key of the element instance to set/update the variables for- Returns:
- a builder for the command
-
newPublishMessageCommand
PublishMessageCommandStep1 newPublishMessageCommand()
Command to publish a message which can be correlated to a process instance.zeebeClient .newPublishMessageCommand() .messageName("order canceled") .correlationKey(orderId) .variables(json) .send();
- Returns:
- a builder for the command
-
newResolveIncidentCommand
ResolveIncidentCommandStep1 newResolveIncidentCommand(long incidentKey)
Command to resolve an existing incident.zeebeClient .newResolveIncidentCommand(incidentKey) .send();
- Parameters:
incidentKey
- the key of the corresponding incident- Returns:
- the builder for the command
-
newUpdateRetriesCommand
UpdateRetriesJobCommandStep1 newUpdateRetriesCommand(long jobKey)
Command to update the retries of a job.long jobKey = ..; zeebeClient .newUpdateRetriesCommand(jobKey) .retries(3) .send();
If the given retries are greater than zero then this job will be picked up again by a job worker. This will not close a related incident, which still has to be marked as resolved with
newResolveIncidentCommand(long incidentKey)
.- Parameters:
jobKey
- the key of the job to update- Returns:
- a builder for the command
-
newWorker
JobWorkerBuilderStep1 newWorker()
Registers a new job worker for jobs of a given type.After registration, the broker activates available jobs and assigns them to this worker. It then publishes them to the client. The given worker is called for every received job, works on them and eventually completes them.
JobWorker worker = zeebeClient .newWorker() .jobType("payment") .handler(paymentHandler) .open(); ... worker.close();
Example JobHandler implementation:public final class PaymentHandler implements JobHandler { @Override public void handle(JobClient client, JobEvent jobEvent) { String json = jobEvent.getVariables(); // modify variables client .newCompleteCommand() .event(jobEvent) .variables(json) .send(); } };
- Returns:
- a builder for the worker registration
-
newActivateJobsCommand
ActivateJobsCommandStep1 newActivateJobsCommand()
Command to activate multiple jobs of a given type.zeebeClient .newActivateJobsCommand() .jobType("payment") .maxJobsToActivate(10) .workerName("paymentWorker") .timeout(Duration.ofMinutes(10)) .send();
The command will try to use
maxJobsToActivate
for givenjobType
. If less then the requestedmaxJobsToActivate
jobs of thejobType
are available for activation the returned list will have fewer elements.- Returns:
- a builder for the command
-
-