I - the input object typeO - the output object type (will be wrapped in a Future)public class AsyncItemProcessor<I,O> extends java.lang.Object implements ItemProcessor<I,java.util.concurrent.Future<O>>, org.springframework.beans.factory.InitializingBean
ItemProcessor that delegates to a nested processor and in the
background. To allow for background processing the return value from the
processor is a Future which needs to be unpacked before the item can
be used by a client.| Constructor and Description |
|---|
AsyncItemProcessor() |
| Modifier and Type | Method and Description |
|---|---|
void |
afterPropertiesSet()
Check mandatory properties (the
setDelegate(ItemProcessor)). |
java.util.concurrent.Future<O> |
process(I item)
Transform the input by delegating to the provided item processor.
|
void |
setDelegate(ItemProcessor<I,O> delegate)
The
ItemProcessor to use to delegate processing to in a
background thread. |
void |
setTaskExecutor(org.springframework.core.task.TaskExecutor taskExecutor)
The
TaskExecutor to use to allow the item processing to proceed
in the background. |
public void afterPropertiesSet()
throws java.lang.Exception
setDelegate(ItemProcessor)).afterPropertiesSet in interface org.springframework.beans.factory.InitializingBeanjava.lang.ExceptionInitializingBean.afterPropertiesSet()public void setDelegate(ItemProcessor<I,O> delegate)
ItemProcessor to use to delegate processing to in a
background thread.delegate - the ItemProcessor to use as a delegatepublic void setTaskExecutor(org.springframework.core.task.TaskExecutor taskExecutor)
TaskExecutor to use to allow the item processing to proceed
in the background. Defaults to a SyncTaskExecutor so no threads
are created unless this is overridden.taskExecutor - a TaskExecutorpublic java.util.concurrent.Future<O> process(I item) throws java.lang.Exception
Future so that clients can unpack it
later.process in interface ItemProcessor<I,java.util.concurrent.Future<O>>item - to be processedjava.lang.ExceptionItemProcessor.process(Object)