跳到主要内容
版本:6.0.2

Untitled :: Spring Batch 参考文档

异步处理器

异步处理器帮助您扩展项目的处理能力。在异步处理器使用场景中,AsyncItemProcessor 充当调度器,在新线程上执行 ItemProcessor 对项目的处理逻辑。项目完成后,Future 会被传递给 AsyncItemWriter 进行写入操作。

因此,您可以通过使用异步项目处理来提高性能,这基本上允许您实现分叉-合并场景。AsyncItemWriter 会收集结果,并在所有结果可用时立即写回数据块。

以下示例展示了如何在 Java 中配置 AsyncItemProcessor

@Bean
public AsyncItemProcessor processor(ItemProcessor itemProcessor, TaskExecutor taskExecutor) {
AsyncItemProcessor asyncItemProcessor = new AsyncItemProcessor();
asyncItemProcessor.setTaskExecutor(taskExecutor);
asyncItemProcessor.setDelegate(itemProcessor);
return asyncItemProcessor;
}

delegate 属性指向你的 ItemProcessor bean,而 taskExecutor 属性则指向你选择的 TaskExecutor

以下示例展示了如何在 Java 中配置 AsyncItemWriter

@Bean
public AsyncItemWriter writer(ItemWriter itemWriter) {
AsyncItemWriter asyncItemWriter = new AsyncItemWriter();
asyncItemWriter.setDelegate(itemWriter);
return asyncItemWriter;
}

同样,delegate 属性实际上是对你的 ItemWriter bean 的引用。