要求:
当前实施:
MultiResourcePartitioner
读取多个文件,而TaskExecutor
使其成为多线程。
Step s1 = sbf.get("file-db")
.<Person, Person>chunk(1500)
.reader(reader())
.writer(jdbcWriter())
.build();
Step master = sbf.get("master-step")
.listener(stepExecutionListener())
.partitioner("master", partitioner())
.step(s1)
.taskExecutor(taskExecutor())
.build();
问题:
在每个线程中仅将来自单个文件的条目持久化到数据库是无效的。在使用内置的spring-batch功能提交数据库之前,是否有可能将实体合并到某些数据接收器中? 还是实现这一目标的唯一方法是将实体推送到一个简单的Queue,然后从中读取?
答案 0 :(得分:0)
我发现的“解决方法”是实现自定义Partitioner
,类似于MultiResourcePartitioner
,并将文件名列表推送到ExectionContext
。