spring批处理调度数据块



我是spring-batch的新手,我有一个任务,我从数据库中读取区块(100个项目(,并通过kafka主题将其发送到另一个数据源,这个作业每天都在运行,基于区块的处理是如何完成的?

我所做的是创建了一个基于区块的处理器,并创建了步骤

@Bean
public Step sendUsersOrderProductsStep() throws Exception {
return this.stepBuilderFactory.get("testStep").<Order, Order>chunk(100)
.reader(itemReader())
.writer(orderKafkaSender()).build();
} 

我已经创建了工作

@Bean
Job sendOrdersJob() throws Exception {
return this.jobBuilderFactory.get("testJob")
.start(sendUsersOrderProductsStep()).build();
}

但这会读取所有数据一次,并发送到写入程序块,直到读取器完成所有数据,我想每隔100个周期发送一次

但这会一次性读取数据并发送到写入程序块,直到读取器完成所有数据,

这就是面向块的处理模型的工作原理,请查看此处的文档:面向块的过程。

我想每隔100次定期发送

例如,您可以尝试使用JdbcCursorItemReader#setMaxItemCount设置运行的每个作业中的最大项目数。

最新更新