Class Workflow


  • public abstract class Workflow
    extends java.lang.Object
    The Workflow class represents a `WfSpec` object in the API.
    • Method Summary

      All Methods Static Methods Instance Methods Abstract Methods Concrete Methods 
      Modifier and Type Method Description
      void compileAndSaveToDisk​(java.lang.String directory)
      Writes out the PutWfSpecRequest in JSON form in a directory.
      java.lang.String compileWfToJson()
      Returns the associated PutWfSpecRequest in JSON form.
      abstract io.littlehorse.sdk.common.proto.PutWfSpecRequest compileWorkflow()
      Compiles this Workflow into a `WfSpec`.
      boolean doesWfSpecExist​(io.littlehorse.sdk.common.proto.LHPublicApiGrpc.LHPublicApiBlockingStub client)
      Checks if the WfSpec exists
      boolean doesWfSpecExist​(io.littlehorse.sdk.common.proto.LHPublicApiGrpc.LHPublicApiBlockingStub client, java.lang.Integer majorVersion)
      Checks if the WfSpec exists for a given version
      int getDefaultTaskRetries()
      Get the default number of retries for task nodes.
      java.lang.Integer getDefaultTaskTimeout()
      Returns the default task timeout, or null if it is not set.
      java.lang.String getName()
      Gets the workflow name passed at newWorkflow(String, ThreadFunc)
      abstract java.util.Set<java.lang.String> getRequiredExternalEventDefNames()
      Returns the names of all `ExternalEventDef`s used by this workflow.
      abstract java.util.Set<java.lang.String> getRequiredTaskDefNames()
      Returns the names of all `TaskDef`s used by this workflow.
      static Workflow newWorkflow​(java.lang.String name, ThreadFunc entrypointThreadFunc)
      Creates a new Workflow with the provided name and entrypoint thread function.
      void registerWfSpec​(io.littlehorse.sdk.common.proto.LHPublicApiGrpc.LHPublicApiBlockingStub client)
      Deploys the WfSpec object to the LH Server.
      void setDefaultTaskRetries​(int retries)
      Set default number of retries for task nodes.
      void setDefaultTaskTimeout​(int timeoutSeconds)
      Sets the default timeout for all TaskRun's in this workflow.
      Workflow withDefaultThreadRetentionPolicy​(io.littlehorse.sdk.common.proto.ThreadRetentionPolicy policy)
      Sets the retention policy for all ThreadRun's belong to this WfSpec.
      Workflow withRetentionPolicy​(io.littlehorse.sdk.common.proto.WorkflowRetentionPolicy policy)
      Sets the retention policy for all WfRun's created by this WfSpec.
      • Methods inherited from class java.lang.Object

        equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Method Detail

      • setDefaultTaskTimeout

        public void setDefaultTaskTimeout​(int timeoutSeconds)
        Sets the default timeout for all TaskRun's in this workflow.
        Parameters:
        timeoutSeconds - is the value for the timeout to set.
      • getDefaultTaskTimeout

        public java.lang.Integer getDefaultTaskTimeout()
        Returns the default task timeout, or null if it is not set.
        Returns:
        the default task timeout for this Workflow.
      • setDefaultTaskRetries

        public void setDefaultTaskRetries​(int retries)
        Set default number of retries for task nodes. If this method is not called, then there are zero retries for each task node.
        Parameters:
        retries - is the number of times to retry failed TaskRun executions.
      • getDefaultTaskRetries

        public int getDefaultTaskRetries()
        Get the default number of retries for task nodes.
        Returns:
        The default number of retries for task nodes.
      • withRetentionPolicy

        public Workflow withRetentionPolicy​(io.littlehorse.sdk.common.proto.WorkflowRetentionPolicy policy)
        Sets the retention policy for all WfRun's created by this WfSpec.
        Parameters:
        policy - is the Workflow Retention Policy.
        Returns:
        this Workflow.
      • withDefaultThreadRetentionPolicy

        public Workflow withDefaultThreadRetentionPolicy​(io.littlehorse.sdk.common.proto.ThreadRetentionPolicy policy)
        Sets the retention policy for all ThreadRun's belong to this WfSpec. Note that each Thread can override the configured Retention Policy by using WorkflowThread#withRetentionPolicy.
        Parameters:
        policy - is the Workflow Retention Policy.
        Returns:
        this Workflow.
      • newWorkflow

        public static Workflow newWorkflow​(java.lang.String name,
                                           ThreadFunc entrypointThreadFunc)
        Creates a new Workflow with the provided name and entrypoint thread function.
        Parameters:
        name - is the name of the `WfSpec`.
        entrypointThreadFunc - is the ThreadFunc for the entrypoint ThreadSpec.
        Returns:
        a Workflow.
      • compileWorkflow

        public abstract io.littlehorse.sdk.common.proto.PutWfSpecRequest compileWorkflow()
        Compiles this Workflow into a `WfSpec`.
        Returns:
        a `PutWfSpecRequest` that can be used for the gRPC putWfSpec() call.
      • getRequiredTaskDefNames

        public abstract java.util.Set<java.lang.String> getRequiredTaskDefNames()
        Returns the names of all `TaskDef`s used by this workflow.
        Returns:
        a Set of Strings containing the names of all `TaskDef`s used by this workflow.
      • getRequiredExternalEventDefNames

        public abstract java.util.Set<java.lang.String> getRequiredExternalEventDefNames()
        Returns the names of all `ExternalEventDef`s used by this workflow. Includes ExternalEventDefs used for Interrupts or for EXTERNAL_EVENT nodes.
        Returns:
        a Set of Strings containing the names of all `ExternalEventDef`s used by this workflow.
      • compileWfToJson

        public java.lang.String compileWfToJson()
        Returns the associated PutWfSpecRequest in JSON form.
        Returns:
        the associated PutWfSpecRequest in JSON form.
      • doesWfSpecExist

        public boolean doesWfSpecExist​(io.littlehorse.sdk.common.proto.LHPublicApiGrpc.LHPublicApiBlockingStub client)
        Checks if the WfSpec exists
        Parameters:
        client - is an LHClient.
        Returns:
        true if the workflow spec is registered or false otherwise
      • doesWfSpecExist

        public boolean doesWfSpecExist​(io.littlehorse.sdk.common.proto.LHPublicApiGrpc.LHPublicApiBlockingStub client,
                                       java.lang.Integer majorVersion)
        Checks if the WfSpec exists for a given version
        Parameters:
        client - is an LHClient.
        majorVersion - the workflow Major Version
        Returns:
        true if the workflow spec is registered for this Major Version or false otherwise
      • registerWfSpec

        public void registerWfSpec​(io.littlehorse.sdk.common.proto.LHPublicApiGrpc.LHPublicApiBlockingStub client)
        Deploys the WfSpec object to the LH Server. Registering the WfSpec via Workflow::registerWfSpec() is the same as client.putWfSpec(workflow.compileWorkflow()).
        Parameters:
        client - is an LHClient.
      • compileAndSaveToDisk

        public void compileAndSaveToDisk​(java.lang.String directory)
        Writes out the PutWfSpecRequest in JSON form in a directory.
        Parameters:
        directory - is the location to save the resources.