给出以下工作职位。
@Bean
public Step mergeStep(
TaskExecutor taskExecutor,
ItemWriter<InboundDetail> writer,
JobWriteNotificationListener writeListener) {
return stepBuilderFactory.get("mergeStep")
.<InboundDetail, InboundDetail>chunk(50)
.reader(inboundDetailReader())
.writer(writer)
.listener(writeListener)
// .taskExecutor(taskExecutor)
// .throttleLimit(4)
.build();
}
和一个读者@JobScope
正在使用的带有@JobScope
public class FunkyBean {
}
的bean。
taskExecutor
如果重新注释了throttleLimit
和TaskExecutor
,则由于线程不再属于作业范围,因此无法再解决依赖关系。
在这种情况下,@Bean
TaskExecutor taskExecutor() {
return new SimpleAsyncTaskExecutor();
}
是:
@JobScope
我认为这是一个错误,但是我知道如何实现。
是否存在一种解决方法,可以在存在多个线程的情况下获取作业状态?
我目前在阅读器/写入器中使用JobExecutionListenerSupport
bean和一个=REGEXMATCH(A2,B2&"(,|$)")
组件。
作用域“作业”对于当前线程无效;如果您打算从单例中引用它,请考虑为此bean定义作用域代理。嵌套的异常是java.lang.IllegalStateException: