Class SyncWorkflowWorker

  • All Implemented Interfaces:
    Shutdownable, Startable, Suspendable, SuspendableWorker, WorkerWithLifecycle

    public class SyncWorkflowWorker
    extends java.lang.Object
    implements SuspendableWorker
    Facade that supports a lifecycle and maintains an assembly of
    • WorkflowWorker that performing execution of workflow task
    • LocalActivityWorker that performs execution of local activities scheduled by the workflow tasks
    and exposing additional management helper methods for the assembly.
    • Method Detail

      • registerWorkflowImplementationTypes

        public void registerWorkflowImplementationTypes​(WorkflowImplementationOptions options,
                                                        java.lang.Class<?>[] workflowImplementationTypes)
      • registerLocalActivityImplementations

        public void registerLocalActivityImplementations​(java.lang.Object... activitiesImplementation)
      • start

        public boolean start()
        Description copied from interface: Startable
        This method is not required to be idempotent. It is expected to be called only once.
        Specified by:
        start in interface Startable
        Returns:
        true if the start was successful, false if the worker configuration renders the start obsolete (like no types are registered)
      • shutdown

        public java.util.concurrent.CompletableFuture<java.lang.Void> shutdown​(ShutdownManager shutdownManager,
                                                                               boolean interruptTasks)
        Specified by:
        shutdown in interface Shutdownable
        Parameters:
        shutdownManager - provides toolset to get a Future for a shutdown of instances that have both non-blocking and not returning a Future on a completion shutdown methods (like ExecutorService.shutdown())
        interruptTasks - if the threads processing user code (like workflows, workflow tasks or activities) should be interrupted, or we want to wait for their full graceful completion
        Returns:
        CompletableFuture which should be completed when awaiting downstream dependencies can proceed with their own shutdown. Should never be completed exceptionally CompletableFuture.exceptionally(Function) as downstream dependencies have no use of this information (they need to perform a shutdown anyway), and it complicates the shutdown flow.
      • awaitTermination

        public void awaitTermination​(long timeout,
                                     java.util.concurrent.TimeUnit unit)
        Specified by:
        awaitTermination in interface Shutdownable
      • suspendPolling

        public void suspendPolling()
        Description copied from interface: Suspendable
        Do not make new poll requests. Outstanding long polls still can return tasks after this method was called.
        Specified by:
        suspendPolling in interface Suspendable
      • queryWorkflowExecution

        public <R> R queryWorkflowExecution​(WorkflowExecutionHistory history,
                                            java.lang.String queryType,
                                            java.lang.Class<R> resultClass,
                                            java.lang.reflect.Type resultType,
                                            java.lang.Object[] args)
                                     throws java.lang.Exception
        Throws:
        java.lang.Exception
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object