Class WorkerFactory

java.lang.Object
io.temporal.worker.WorkerFactory

public final class WorkerFactory extends Object
Maintains worker creation and lifecycle.
  • Method Details

    • newInstance

      public static WorkerFactory newInstance(WorkflowClient workflowClient)
    • newInstance

      public static WorkerFactory newInstance(WorkflowClient workflowClient, WorkerFactoryOptions options)
    • newWorker

      public Worker newWorker(String taskQueue)
      Creates worker that connects to an instance of the Temporal Service. It uses the namespace configured at the Factory level. New workers cannot be created after the start() has been called
      Parameters:
      taskQueue - task queue name worker uses to poll. It uses this name for both workflow and activity task queue polls.
      Returns:
      Worker
    • newWorker

      public Worker newWorker(String taskQueue, WorkerOptions options)
      Creates worker that connects to an instance of the Temporal Service. It uses the namespace configured at the Factory level. New workers cannot be created after the start() has been called
      Parameters:
      taskQueue - task queue name worker uses to poll. It uses this name for both workflow and activity task queue polls.
      options - Options (like DataConverter override) for configuring worker.
      Returns:
      Worker
    • getWorker

      public Worker getWorker(String taskQueue)
      Parameters:
      taskQueue - task queue name to lookup an existing worker for
      Returns:
      a worker created previously through newWorker(String) for the given task queue.
      Throws:
      IllegalStateException - if the worker has not been registered for the given task queue.
    • tryGetWorker

      @Nullable public Worker tryGetWorker(@Nonnull String taskQueue)
      Parameters:
      taskQueue - task queue name to lookup an existing worker for
      Returns:
      a worker created previously through newWorker(String) for the given task queue or null.
    • start

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

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

      public boolean isShutdown()
      Was shutdown() or shutdownNow() 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 Temporal client that this worker factory uses.
    • shutdown

      public void shutdown()
      Initiates an orderly shutdown in which polls are stopped and already received workflow and activity tasks are executed.
      After the shutdown, calls to ActivityExecutionContext.heartbeat(Object) start throwing ActivityWorkerShutdownException, unless WorkerOptions.Builder.setAllowActivityHeartbeatDuringShutdown(boolean) is enabled, in which case heartbeats keep working until the activity tasks finish executing.
      This method does not wait for the shutdown to complete. Use awaitTermination(long, TimeUnit) to do that.
      Invocation has no additional effect if already shut down.
    • shutdownNow

      public void shutdownNow()
      Initiates an orderly shutdown in which polls are stopped and already received workflow 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.
      After the shutdownNow calls to ActivityExecutionContext.heartbeat(Object) start throwing ActivityWorkerShutdownException.
      This method does not wait for the shutdown to complete. Use awaitTermination(long, TimeUnit) to do that.
      Invocation has no additional effect if already shut down.
    • awaitTermination

      public void awaitTermination(long timeout, TimeUnit unit)
      Blocks until all tasks have completed execution after a shutdown request, or the timeout occurs.
    • suspendPolling

      public void suspendPolling()
    • resumePolling

      public void resumePolling()
    • toString

      public String toString()
      Overrides:
      toString in class Object