Class Parallel
- All Implemented Interfaces:
IChainable,INextable,software.amazon.jsii.JsiiSerializable,software.constructs.IConstruct,software.constructs.IDependable
A Parallel state can be used to run one or more state machines at the same time.
The Result of a Parallel state is an array of the results of its substatemachines.
Example:
import software.amazon.awscdk.Stack;
import software.constructs.Construct;
import software.amazon.awscdk.services.stepfunctions.*;
public class MyJobProps {
private String jobFlavor;
public String getJobFlavor() {
return this.jobFlavor;
}
public MyJobProps jobFlavor(String jobFlavor) {
this.jobFlavor = jobFlavor;
return this;
}
}
public class MyJob extends StateMachineFragment {
public final State startState;
public final INextable[] endStates;
public MyJob(Construct parent, String id, MyJobProps props) {
super(parent, id);
Choice choice = new Choice(this, "Choice").when(Condition.stringEquals("$.branch", "left"), new Pass(this, "Left Branch")).when(Condition.stringEquals("$.branch", "right"), new Pass(this, "Right Branch"));
// ...
this.startState = choice;
this.endStates = choice.afterwards().getEndStates();
}
}
public class MyStack extends Stack {
public MyStack(Construct scope, String id) {
super(scope, id);
// Do 3 different variants of MyJob in parallel
Parallel parallel = new Parallel(this, "All jobs").branch(new MyJob(this, "Quick", new MyJobProps().jobFlavor("quick")).prefixStates()).branch(new MyJob(this, "Medium", new MyJobProps().jobFlavor("medium")).prefixStates()).branch(new MyJob(this, "Slow", new MyJobProps().jobFlavor("slow")).prefixStates());
StateMachine.Builder.create(this, "MyStateMachine")
.definitionBody(DefinitionBody.fromChainable(parallel))
.build();
}
}
-
Nested Class Summary
Nested ClassesNested classes/interfaces inherited from class software.amazon.jsii.JsiiObject
software.amazon.jsii.JsiiObject.InitializationModeNested classes/interfaces inherited from interface software.amazon.awscdk.services.stepfunctions.IChainable
IChainable.Jsii$DefaultNested classes/interfaces inherited from interface software.constructs.IConstruct
software.constructs.IConstruct.Jsii$DefaultNested classes/interfaces inherited from interface software.amazon.awscdk.services.stepfunctions.INextable
INextable.Jsii$Default, INextable.Jsii$Proxy -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedParallel(software.amazon.jsii.JsiiObject.InitializationMode initializationMode) protectedParallel(software.amazon.jsii.JsiiObjectRef objRef) Parallel(software.constructs.Construct scope, String id, ParallelProps props) -
Method Summary
Modifier and TypeMethodDescriptionaddCatch(IChainable handler) Add a recovery handler for this state.addCatch(IChainable handler, CatchProps props) Add a recovery handler for this state.addRetry()Add retry configuration for this state.addRetry(RetryProps props) Add retry configuration for this state.voidbindToGraph(StateGraph graph) Overwrites State.bindToGraph.branch(IChainable... branches) Define one or more branches to run in parallel.Continuable states of this Chainable.static ParallelDefine a Parallel state using JSONata in the state machine.static Paralleljsonata(software.constructs.Construct scope, String id, ParallelJsonataProps props) Define a Parallel state using JSONata in the state machine.static ParallelDefine a Parallel state using JSONPath in the state machine.static ParalleljsonPath(software.constructs.Construct scope, String id, ParallelJsonPathProps props) Define a Parallel state using JSONPath in the state machine.next(IChainable next) Continue normal execution with the given state.com.fasterxml.jackson.databind.node.ObjectNodeReturn the Amazon States Language object for this state.com.fasterxml.jackson.databind.node.ObjectNodetoStateJson(QueryLanguage topLevelQueryLanguage) Return the Amazon States Language object for this state.Validate this state.Methods inherited from class software.amazon.awscdk.services.stepfunctions.State
addBranch, addChoice, addChoice, addItemProcessor, addItemProcessor, addIterator, addPrefix, filterNextables, findReachableEndStates, findReachableEndStates, findReachableStates, findReachableStates, getArguments, getAssign, getBranches, getComment, getDefaultChoice, getId, getInputPath, getIteration, getOutputPath, getOutputs, getParameters, getProcessor, getProcessorConfig, getProcessorMode, getQueryLanguage, getResultPath, getResultSelector, getStartState, getStateId, getStateName, makeDefault, makeNext, prefixStates, renderAssign, renderAssign, renderBranches, renderChoices, renderChoices, renderInputOutput, renderItemProcessor, renderIterator, renderNextEnd, renderQueryLanguage, renderQueryLanguage, renderResultSelector, renderRetryCatch, renderRetryCatch, setDefaultChoice, setIteration, setProcessor, setProcessorConfig, setProcessorMode, whenBoundToGraphMethods inherited from class software.constructs.Construct
getNode, isConstruct, toStringMethods inherited from class software.amazon.jsii.JsiiObject
jsiiAsyncCall, jsiiAsyncCall, jsiiCall, jsiiCall, jsiiGet, jsiiGet, jsiiSet, jsiiStaticCall, jsiiStaticCall, jsiiStaticGet, jsiiStaticGet, jsiiStaticSet, jsiiStaticSetMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface software.amazon.jsii.JsiiSerializable
$jsii$toJson
-
Constructor Details
-
Parallel
protected Parallel(software.amazon.jsii.JsiiObjectRef objRef) -
Parallel
protected Parallel(software.amazon.jsii.JsiiObject.InitializationMode initializationMode) -
Parallel
@Stability(Stable) public Parallel(@NotNull software.constructs.Construct scope, @NotNull String id, @Nullable ParallelProps props) - Parameters:
scope- This parameter is required.id- Descriptive identifier for this chainable. This parameter is required.props-
-
Parallel
@Stability(Stable) public Parallel(@NotNull software.constructs.Construct scope, @NotNull String id) - Parameters:
scope- This parameter is required.id- Descriptive identifier for this chainable. This parameter is required.
-
-
Method Details
-
jsonata
@Stability(Stable) @NotNull public static Parallel jsonata(@NotNull software.constructs.Construct scope, @NotNull String id, @Nullable ParallelJsonataProps props) Define a Parallel state using JSONata in the state machine.A Parallel state can be used to run one or more state machines at the same time.
The Result of a Parallel state is an array of the results of its substatemachines.
- Parameters:
scope- This parameter is required.id- This parameter is required.props-
-
jsonata
@Stability(Stable) @NotNull public static Parallel jsonata(@NotNull software.constructs.Construct scope, @NotNull String id) Define a Parallel state using JSONata in the state machine.A Parallel state can be used to run one or more state machines at the same time.
The Result of a Parallel state is an array of the results of its substatemachines.
- Parameters:
scope- This parameter is required.id- This parameter is required.
-
jsonPath
@Stability(Stable) @NotNull public static Parallel jsonPath(@NotNull software.constructs.Construct scope, @NotNull String id, @Nullable ParallelJsonPathProps props) Define a Parallel state using JSONPath in the state machine.A Parallel state can be used to run one or more state machines at the same time.
The Result of a Parallel state is an array of the results of its substatemachines.
- Parameters:
scope- This parameter is required.id- This parameter is required.props-
-
jsonPath
@Stability(Stable) @NotNull public static Parallel jsonPath(@NotNull software.constructs.Construct scope, @NotNull String id) Define a Parallel state using JSONPath in the state machine.A Parallel state can be used to run one or more state machines at the same time.
The Result of a Parallel state is an array of the results of its substatemachines.
- Parameters:
scope- This parameter is required.id- This parameter is required.
-
addCatch
@Stability(Stable) @NotNull public Parallel addCatch(@NotNull IChainable handler, @Nullable CatchProps props) Add a recovery handler for this state.When a particular error occurs, execution will continue at the error handler instead of failing the state machine execution.
- Parameters:
handler- This parameter is required.props-
-
addCatch
Add a recovery handler for this state.When a particular error occurs, execution will continue at the error handler instead of failing the state machine execution.
- Parameters:
handler- This parameter is required.
-
addRetry
Add retry configuration for this state.This controls if and how the execution will be retried if a particular error occurs.
- Parameters:
props-
-
addRetry
Add retry configuration for this state.This controls if and how the execution will be retried if a particular error occurs.
-
bindToGraph
Overwrites State.bindToGraph. Adds branches to the Parallel state here so that any necessary prefixes are appended first.- Overrides:
bindToGraphin classState- Parameters:
graph- This parameter is required.
-
branch
Define one or more branches to run in parallel.- Parameters:
branches- This parameter is required.
-
next
Continue normal execution with the given state. -
toStateJson
@Stability(Stable) @NotNull public com.fasterxml.jackson.databind.node.ObjectNode toStateJson(@Nullable QueryLanguage topLevelQueryLanguage) Return the Amazon States Language object for this state.- Specified by:
toStateJsonin classState- Parameters:
topLevelQueryLanguage-
-
toStateJson
@Stability(Stable) @NotNull public com.fasterxml.jackson.databind.node.ObjectNode toStateJson()Return the Amazon States Language object for this state.- Specified by:
toStateJsonin classState
-
validateState
Validate this state.- Overrides:
validateStatein classState
-
getEndStates
Continuable states of this Chainable.- Specified by:
getEndStatesin interfaceIChainable- Specified by:
getEndStatesin classState
-