Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/310.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 提交间隔未按预期工作_Java_Spring_Spring Batch - Fatal编程技术网

Java 提交间隔未按预期工作

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

比如说,我们在DB中有1000个条目,我们试图一次获取和删除10个条目

按照以下配置

<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中添加“完成后允许启动”解决了这个问题。这个问题现在已经解决了。