Class ZeebeClientImpl

    • Method Detail

      • newTopologyRequest

        public TopologyRequestStep1 newTopologyRequest()
        Description copied from interface: ZeebeClient
        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();
         
        Specified by:
        newTopologyRequest in interface ZeebeClient
        Returns:
        the request where you must call send()
      • newDeployCommand

        public DeployWorkflowCommandStep1 newDeployCommand()
        Description copied from interface: ZeebeClient
        Command to deploy new workflows.
         zeebeClient
          .newDeployCommand()
          .addResourceFile("~/wf/workflow1.bpmn")
          .addResourceFile("~/wf/workflow2.bpmn")
          .send();
         
        Specified by:
        newDeployCommand in interface ZeebeClient
        Returns:
        a builder for the command
      • newCreateInstanceCommand

        public CreateWorkflowInstanceCommandStep1 newCreateInstanceCommand()
        Description copied from interface: ZeebeClient
        Command to create/start a new instance of a workflow.
         zeebeClient
          .newCreateInstanceCommand()
          .bpmnProcessId("my-process")
          .latestVersion()
          .variables(json)
          .send();
         
        Specified by:
        newCreateInstanceCommand in interface ZeebeClient
        Returns:
        a builder for the command
      • newCancelInstanceCommand

        public CancelWorkflowInstanceCommandStep1 newCancelInstanceCommand​(long workflowInstanceKey)
        Description copied from interface: ZeebeClient
        Command to cancel a workflow instance.
         zeebeClient
          .newCancelInstanceCommand(workflowInstanceKey)
          .send();
         
        Specified by:
        newCancelInstanceCommand in interface ZeebeClient
        Parameters:
        workflowInstanceKey - the key which identifies the corresponding workflow instance
        Returns:
        a builder for the command
      • newSetVariablesCommand

        public SetVariablesCommandStep1 newSetVariablesCommand​(long elementInstanceKey)
        Description copied from interface: ZeebeClient
        Command to set and/or update the variables of a given flow element (e.g. workflow instance, task, etc.)
         zeebeClient
          .newSetVariablesCommand(elementInstanceKey)
          .variables(json)
          .send();
         
        Specified by:
        newSetVariablesCommand in interface ZeebeClient
        Parameters:
        elementInstanceKey - the key of the element instance to set/update the variables for
        Returns:
        a builder for the command
      • newPublishMessageCommand

        public PublishMessageCommandStep1 newPublishMessageCommand()
        Description copied from interface: ZeebeClient
        Command to publish a message which can be correlated to a workflow instance.
         zeebeClient
          .newPublishMessageCommand()
          .messageName("order canceled")
          .correlationKey(orderId)
          .variables(json)
          .send();
         
        Specified by:
        newPublishMessageCommand in interface ZeebeClient
        Returns:
        a builder for the command
      • newResolveIncidentCommand

        public ResolveIncidentCommandStep1 newResolveIncidentCommand​(long incidentKey)
        Description copied from interface: ZeebeClient
        Command to resolve an existing incident.
         zeebeClient
          .newResolveIncidentCommand(incidentKey)
          .send();
         
        Specified by:
        newResolveIncidentCommand in interface ZeebeClient
        Parameters:
        incidentKey - the key of the corresponding incident
        Returns:
        the builder for the command
      • newUpdateRetriesCommand

        public UpdateRetriesJobCommandStep1 newUpdateRetriesCommand​(long jobKey)
        Description copied from interface: ZeebeClient
        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) .

        Specified by:
        newUpdateRetriesCommand in interface ZeebeClient
        Parameters:
        jobKey - the key of the job to update
        Returns:
        a builder for the command
      • newWorker

        public JobWorkerBuilderStep1 newWorker()
        Description copied from interface: ZeebeClient
        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();
           }
         };
         
        Specified by:
        newWorker in interface ZeebeClient
        Returns:
        a builder for the worker registration
      • newActivateJobsCommand

        public ActivateJobsCommandStep1 newActivateJobsCommand()
        Description copied from interface: ZeebeClient
        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 given jobType. If less then the requested maxJobsToActivate jobs of the jobType are available for activation the returned list will have fewer elements.

        Specified by:
        newActivateJobsCommand in interface ZeebeClient
        Returns:
        a builder for the command
      • newCompleteCommand

        public CompleteJobCommandStep1 newCompleteCommand​(long jobKey)
        Description copied from interface: JobClient
        Command to complete a job.
         long jobKey = ..;
        
         jobClient
          .newCompleteCommand(jobKey)
          .variables(json)
          .send();
         

        If the job is linked to a workflow instance then this command will complete the related activity and continue the flow.

        Specified by:
        newCompleteCommand in interface JobClient
        Parameters:
        jobKey - the key which identifies the job
        Returns:
        a builder for the command
      • newFailCommand

        public FailJobCommandStep1 newFailCommand​(long jobKey)
        Description copied from interface: JobClient
        Command to mark a job as failed.
         long jobKey = ..;
        
         jobClient
          .newFailCommand(jobKey)
          .retries(3)
          .send();
         

        If the given retries are greater than zero then this job will be picked up again by a job subscription. Otherwise, an incident is created for this job.

        Specified by:
        newFailCommand in interface JobClient
        Parameters:
        jobKey - the key which identifies the job
        Returns:
        a builder for the command
      • newThrowErrorCommand

        public ThrowErrorCommandStep1 newThrowErrorCommand​(long jobKey)
        Description copied from interface: JobClient
        Command to report a business error (i.e. non-technical) that occurs while processing a job.
         long jobKey = ...;
         String code = ...;
        
         jobClient
          .newThrowErrorCommand(jobKey)
          .errorCode(code)
          .send();
         

        The error is handled in the workflow by an error catch event. If there is no error catch event with the specified errorCode then an incident will be raised instead.

        Specified by:
        newThrowErrorCommand in interface JobClient
        Parameters:
        jobKey - the key which identifies the job
        Returns:
        a builder for the command