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.InitializingBean
java.lang.Exception
InitializingBean.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 TaskExecutor
public 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.Exception
ItemProcessor.process(Object)