我的代码可以读取和写入数据库,但只有一块之后,这个过程停止。无法执行其他块。
下面是类似org.springframework.dao.invaliddataaccessresourceusageexception的错误:意外的光标位置更改。
分步实施
@Bean
public Step step(StepBuilderFactory stepBuilderFactory) throws Exception {
ThreadPoolTaskExceutor taskExcutorInstance = new ThreadPoolTaskExceutor();
taskExcutorInstance.setCorePoolSize(10);
taskExcutorInstance.setMaxPoolSize(10);
return stepBuilderFactory
.get("read from DB and Write to DB")
.<Object, Object>chunk(1000)
.reader(reader(null))
.writer(writer())
.taskExecutor(taskExcutorInstance)
.build();
}
对于使用jdbccursoritemreader的reader im和使用jdbccbatchitemwriter的writer im。我试着同时读写多首歌
如果我需要禁用verifycursorposition,我们到底需要如何禁用它?
1条答案
按热度按时间dzhpxtsq1#
这个
JdbcCursorItemReader
延伸AbstractItemCountingItemStreamItemReader
这不是线程安全的。您可以尝试同步其read
操作(通过用SynchronizedItemStreamReader
),否则您需要使用像JdbcPagingItemReader
.