Input - the input of the executionOutput - the output of the executionpublic interface FlowablePlanItemFutureJavaDelegate<Input,Output> extends PlanItemFutureJavaDelegate<Output>
AsyncTaskInvoker to execute the async data.
Provides intermediate methods to prepare the execution data before executing and do the
actual execution without the need to work with futures.MapBasedFlowablePlanItemFutureJavaDelegate,
PlanItemFutureJavaDelegate| Modifier and Type | Method and Description |
|---|---|
void |
afterExecution(DelegatePlanItemInstance planItemInstance,
Output executionData)
Method invoked with the result from
execute(Object). |
default CompletableFuture<Output> |
execute(DelegatePlanItemInstance planItemInstance,
AsyncTaskInvoker taskInvoker)
Perform the execution of the delegate, potentially on another thread.
|
Output |
execute(Input inputData)
Perform the actual execution of the delegate in another thread.
|
Input |
prepareExecutionData(DelegatePlanItemInstance planItemInstance)
Method invoked before doing the execution to extract needed that from the planItemInstance
on the main thread.
|
default CompletableFuture<Output> execute(DelegatePlanItemInstance planItemInstance, AsyncTaskInvoker taskInvoker)
PlanItemFutureJavaDelegatePlanItemFutureJavaDelegate.afterExecution(DelegatePlanItemInstance, Object) in order to store
the data on the planItemInstance on the same thread as the caller of this method.
IMPORTANT: the planItemInstance should only be used to read data before creating the future.
The planItemInstance should not be used in the task that will be executed on a new thread.
The AsyncTaskInvoker is in order to schedule an execution on a different thread.
However, it is also possible to use a different scheduler, or return a future not created by the given taskInvoker.
execute in interface PlanItemFutureJavaDelegate<Output>planItemInstance - the planItemInstance that can be used to extract datataskInvoker - the task invoker that can be used to execute expensive operation on another threadInput prepareExecutionData(DelegatePlanItemInstance planItemInstance)
planItemInstance - the planItemInstance from which to extract dataOutput execute(Input inputData)
prepareExecutionData(DelegatePlanItemInstance) to get the needed data
from the DelegatePlanItemInstance and returns the output data that can is passed to afterExecution(DelegatePlanItemInstance, Object).
IMPORTANT: This is a completely new thread which does not participate in the transaction of the case.inputData - the input data for the execution created via prepareExecutionData(DelegatePlanItemInstance)execute(DelegatePlanItemInstance, AsyncTaskInvoker)void afterExecution(DelegatePlanItemInstance planItemInstance, Output executionData)
execute(Object).
This should be used to set data on the DelegatePlanItemInstance.
This is on the same thread as prepareExecutionData(DelegatePlanItemInstance) and participates in the case transaction.afterExecution in interface PlanItemFutureJavaDelegate<Output>planItemInstance - the planItemInstance to which data can be setexecutionData - the execution dataCopyright © 2021 Flowable. All rights reserved.