Class WorkerFactory


  • public final class WorkerFactory
    extends java.lang.Object
    Maintains worker creation and lifecycle.
    • Constructor Detail

      • WorkerFactory

        public WorkerFactory​(WorkflowClient workflowClient,
                             WorkerFactoryOptions factoryOptions)
        Creates a factory. Workers will be connect to the cadence-server using the workflowService client passed in.
        Parameters:
        workflowClient - client to the Cadence Service endpoint.
        factoryOptions - Options used to configure factory settings
    • Method Detail

      • newWorker

        public Worker newWorker​(java.lang.String taskList)
        Creates worker that connects to an instance of the Cadence Service. It uses the domain configured at the Factory level. New workers cannot be created after the start() has been called
        Parameters:
        taskList - task list name worker uses to poll. It uses this name for both decision and activity task list polls.
        Returns:
        Worker
      • newWorker

        public Worker newWorker​(java.lang.String taskList,
                                WorkerOptions options)
        Creates worker that connects to an instance of the Cadence Service. It uses the domain configured at the Factory level. New workers cannot be created after the start() has been called
        Parameters:
        taskList - task list name worker uses to poll. It uses this name for both decision and activity task list polls.
        options - Options (like DataConverter override) for configuring worker.
        Returns:
        Worker
      • start

        public void start()
        Starts all the workers created by this factory.
      • isStarted

        public boolean isStarted()
        Was start() called.
      • isTerminated

        public boolean isTerminated()
        Returns true if all tasks have completed following shut down. Note that isTerminated is never true unless either shutdown or shutdownNow was called first.
      • getWorkflowClient

        public WorkflowClient getWorkflowClient()
        Returns:
        instance of the Cadence client that this worker uses.
      • shutdownNow

        public void shutdownNow()
        Initiates an orderly shutdown in which polls are stopped and already received decision and activity tasks are attempted to be stopped. This implementation cancels tasks via Thread.interrupt(), so any task that fails to respond to interrupts may never terminate. Also after the shutdownNow calls to Activity.heartbeat(Object) start throwing ActivityWorkerShutdownException. Invocation has no additional effect if already shut down. This method does not wait for previously received tasks to complete execution. Use awaitTermination(long, TimeUnit) to do that.
      • isHealthy

        public java.util.concurrent.CompletableFuture<java.lang.Boolean> isHealthy()
        Checks if we have a valid connection to the Cadence cluster, and potentially resets the peer list
      • awaitTermination

        public void awaitTermination​(long timeout,
                                     java.util.concurrent.TimeUnit unit)
        Blocks until all tasks have completed execution after a shutdown request, or the timeout occurs, or the current thread is interrupted, whichever happens first.
      • suspendPolling

        public void suspendPolling()
      • resumePolling

        public void resumePolling()