Java 提交间隔未按预期工作
比如说,我们在DB中有1000个条目,我们试图一次获取和删除10个条目 按照以下配置Java 提交间隔未按预期工作,java,spring,spring-batch,Java,Spring,Spring Batch,比如说,我们在DB中有1000个条目,我们试图一次获取和删除10个条目 按照以下配置 <batch:chunk reader="tokenReader" writer="tokenWriter" commit-interval="10"></batch:chunk> 我们有ItemReader类,它一次从数据库中获取10个项目,并将10个令牌的列表传递给ItemReader 因此,在处理了10个项目之后,它应该是理想的提交 但我们面临着以下问题 使用commit i
<batch:chunk reader="tokenReader" writer="tokenWriter" commit-interval="10"></batch:chunk>
我们有ItemReader
类,它一次从数据库中获取10个项目,并将10个令牌的列表传递给ItemReader
因此,在处理了10个项目之后,它应该是理想的提交
但我们面临着以下问题
使用commit interval=10
,JobLauncher将启动10个线程,每个线程从数据库获取相同的10个令牌,一旦ItemReader将10个令牌的列表传递给ItemWriter,我们将收到异常(该令牌已标记为删除
”JPA异常
)
但是,如果我们设置了
commit interval=1
,它只会启动1
线程,并通过一次获取和删除10个项目成功执行。你能发布你的taskExecutor
配置吗?我没有配置它,我假设它应该是默认的。这是重复的吗?不,它不同,我通过在tasklet中添加“完成后允许启动”解决了这个问题。这个问题现在已经解决了。