Java 春季批处理:作业未按照限制进行处理

Java 春季批处理:作业未按照限制进行处理,java,spring,multithreading,spring-batch,Java,Spring,Multithreading,Spring Batch,我有一个多线程步骤,配置为区块提交间隔为10,限制为5。当我运行批处理时,ItemReader读取前50个作业(我认为这是基于提交间隔和节流限制),然后一次处理5个作业(基于节流限制),然后写入。到目前为止,它运作良好 在此之后,它不会一次读取接下来的50个作业,并且在剩余作业结束之前,一次只能处理一个或两个作业 根据油门限制,5应一次运行。我看不到套接字或任何其他异常 我是spring batch的新手,如果我有任何错误,请纠正我 以下是我如何配置的: @Bean public Job exe

我有一个多线程步骤,配置为区块提交间隔为10,限制为5。当我运行批处理时,ItemReader读取前50个作业(我认为这是基于提交间隔和节流限制),然后一次处理5个作业(基于节流限制),然后写入。到目前为止,它运作良好

在此之后,它不会一次读取接下来的50个作业,并且在剩余作业结束之前,一次只能处理一个或两个作业

根据油门限制,5应一次运行。我看不到套接字或任何其他异常

我是spring batch的新手,如果我有任何错误,请纠正我

以下是我如何配置的:

@Bean
public Job executeConcurrentJob() {
    return jobBuilderFactory.get("executeConcurrentJob")
            .listener(listener())
            .start(step1())
            .build();
}

@Bean
public TaskExecutor taskExecutor() {
    return new SimpleAsyncTaskExecutor();
}

@Bean
public Step step1() {
    return stepBuilderFactory.get("step1").allowStartIfComplete(true)
            .<BatchJob,BatchJob>chunk(10)
            .reader(reader())
            .processor(processor())
            .writer(writer())
            .taskExecutor(taskExecutor())
            .throttleLimit(5)
            .build();
}
@Bean
公共作业executeConcurrentJob(){
返回jobBuilderFactory.get(“executeConcurrentJob”)
.listener(listener())
.start(步骤1())
.build();
}
@豆子
公共任务执行器任务执行器(){
返回新的SimpleAsyncTaskExecutor();
}
@豆子
公共步骤第1步(){
返回stepBuilderFactory.get(“step1”).allowStartIfComplete(true)
.chunk(10)
.reader(reader())
.processor(处理器())
.writer(writer())
.taskExecutor(taskExecutor())
.节流限制(5)
.build();
}
提前谢谢