A builder for building a split state. Example (
builder
is a
FlowBuilder
):
Flow splitFlow = builder.start(flow1).split(new SyncTaskExecutor()).add(flow2).build();
where
flow1
and
flow2
will be executed (one after the other because of the task
executor that was added). Another example
Flow splitFlow = builder.start(step1).split(new SimpleAsyncTaskExecutor()).add(flow).build();
In this example, a flow consisting of
step1
will be executed in parallel with
flow
.
Note: Adding a split to a chain of states is not supported. For example, the following configuration
is not supported. Instead, the configuration would need to create a flow3 that was the split flow and assemble
them separately.
// instead of this
Flow complexFlow = new FlowBuilder<SimpleFlow>("ComplexParallelFlow")
.start(flow1)
.next(flow2)
.split(new SimpleAsyncTaskExecutor())
.add(flow3, flow4)
.build();
// do this
Flow splitFlow = new FlowBuilder<SimpleFlow>("parallelFlow")
.start(flow3)
.split(new SimpleAsyncTaskExecutor())
.add(flow4).build();
Flow complexFlow = new FlowBuilder<SimpleFlow>("ComplexParallelFlow")
.start(flow1)
.next(flow2)
.next(splitFlow)
.build();