我正在使用spring batch
来处理
大数据
。
我的问题是我有两个不同的Tasklet
,它们正在执行
一个接一个
。我无法并行运行它,因为第二个 tasklet 与第一个 Tasklet
有一些依赖关系。为了节省时间,我想在前几个 items
被前一个 tasklet
。由于 处理
后立即启动下一个 Tasklet
/Spring Batch
使用 Chunk Oriented
处理风格。一个 Tasklet
的 ItemWriter
可以将已处理的项目 block 传递给另一个 Tasklet
的 ItemReader
或 ItemProcessor
或 ItemWriter
用于下一步处理?但是,当另一个 tasklet
正在处理 block
时,之前的 tasklet
不应该等待,而应该继续 >对
。下一个
block
进行迭代
最佳答案
根据您的描述和上面的附加信息,我将简单地利用 CompositeItemWriter
来完成此操作。
项目列表将首先由 WriterOne 写入,然后传递给 WriterTwo 并由 WriterTwo 写入。
<bean id="compositeWriter"
class="org.springframework.batch.item.support.CompositeItemWriter">
<property name="delegates">
<list>
<ref bean="writerOne" />
<ref bean="writerTwo" />
</list>
</property>
</bean>
<bean id="writerOne" ... />
<bean id="writerTwo" ... />
关于java - Spring批处理并行处理两个任务,但第二个任务依赖于第一个任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38613888/