Package io.littlehorse.sdk.wfsdk
Class Workflow
- java.lang.Object
-
- io.littlehorse.sdk.wfsdk.Workflow
-
public abstract class Workflow extends java.lang.ObjectThe 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 voidcompileAndSaveToDisk(java.lang.String directory)Writes out the PutWfSpecRequest in JSON form in a directory.java.lang.StringcompileWfToJson()Returns the associated PutWfSpecRequest in JSON form.abstract io.littlehorse.sdk.common.proto.PutWfSpecRequestcompileWorkflow()Compiles this Workflow into a `WfSpec`.booleandoesWfSpecExist(io.littlehorse.sdk.common.proto.LHPublicApiGrpc.LHPublicApiBlockingStub client)Checks if the WfSpec existsbooleandoesWfSpecExist(io.littlehorse.sdk.common.proto.LHPublicApiGrpc.LHPublicApiBlockingStub client, java.lang.Integer majorVersion)Checks if the WfSpec exists for a given versionintgetDefaultTaskRetries()Get the default number of retries for task nodes.java.lang.IntegergetDefaultTaskTimeout()Returns the default task timeout, or null if it is not set.java.lang.StringgetName()Gets the workflow name passed atnewWorkflow(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 WorkflownewWorkflow(java.lang.String name, ThreadFunc entrypointThreadFunc)Creates a new Workflow with the provided name and entrypoint thread function.voidregisterWfSpec(io.littlehorse.sdk.common.proto.LHPublicApiGrpc.LHPublicApiBlockingStub client)Deploys the WfSpec object to the LH Server.voidsetDefaultTaskRetries(int retries)Set default number of retries for task nodes.voidsetDefaultTaskTimeout(int timeoutSeconds)Sets the default timeout for all TaskRun's in this workflow.WorkflowwithDefaultThreadRetentionPolicy(io.littlehorse.sdk.common.proto.ThreadRetentionPolicy policy)Sets the retention policy for all ThreadRun's belong to this WfSpec.WorkflowwithRetentionPolicy(io.littlehorse.sdk.common.proto.WorkflowRetentionPolicy policy)Sets the retention policy for all WfRun's created by this WfSpec.
-
-
-
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.
-
getName
public java.lang.String getName()
Gets the workflow name passed atnewWorkflow(String, ThreadFunc)- Returns:
- the Workflow name
-
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.
-
-