Class AsyncItemProcessor<I,O> 
java.lang.Object
org.springframework.batch.integration.async.AsyncItemProcessor<I,O> 
- Type Parameters:
- I- the input object type
- O- the output object type (will be wrapped in a Future)
- All Implemented Interfaces:
- ItemProcessor<I,,- Future<O>> - org.springframework.beans.factory.InitializingBean
public class AsyncItemProcessor<I,O> 
extends Object
implements ItemProcessor<I,Future<O>>, org.springframework.beans.factory.InitializingBean 
An 
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.
 
 Because the Future is typically unwrapped in the ItemWriter, there are
 lifecycle and stats limitations (since the framework doesn't know what the result of
 the processor is). While not an exhaustive list, things like
 StepExecution.getFilterCount() will not reflect the number of filtered items
 and
 ItemProcessListener.onProcessError(Object, Exception)
 will not be called.
- Author:
- Dave Syer, Mahmoud Ben Hassine
- See Also:
- 
Constructor SummaryConstructors
- 
Method SummaryModifier and TypeMethodDescriptionvoidCheck mandatory properties (thesetDelegate(ItemProcessor)).Transform the input by delegating to the provided item processor.voidsetDelegate(ItemProcessor<I, O> delegate) TheItemProcessorto use to delegate processing to in a background thread.voidsetTaskExecutor(org.springframework.core.task.TaskExecutor taskExecutor) TheTaskExecutorto use to allow the item processing to proceed in the background.
- 
Constructor Details- 
AsyncItemProcessorpublic AsyncItemProcessor()
 
- 
- 
Method Details- 
afterPropertiesSetCheck mandatory properties (thesetDelegate(ItemProcessor)).- Specified by:
- afterPropertiesSetin interface- org.springframework.beans.factory.InitializingBean
- Throws:
- Exception
- See Also:
- 
- InitializingBean.afterPropertiesSet()
 
 
- 
setDelegateTheItemProcessorto use to delegate processing to in a background thread.- Parameters:
- delegate- the- ItemProcessorto use as a delegate
 
- 
setTaskExecutorpublic void setTaskExecutor(org.springframework.core.task.TaskExecutor taskExecutor) TheTaskExecutorto use to allow the item processing to proceed in the background. Defaults to aSyncTaskExecutorso no threads are created unless this is overridden.- Parameters:
- taskExecutor- a- TaskExecutor
 
- 
processTransform the input by delegating to the provided item processor. The return value is wrapped in aFutureso that clients can unpack it later.- Specified by:
- processin interface- ItemProcessor<I,- O> 
- Parameters:
- item- to be processed, never- null.
- Returns:
- potentially modified or new item for continued processing, nullif processing of the provided item should not continue.
- Throws:
- Exception- thrown if exception occurs during processing.
- See Also:
 
 
-