有没有办法对 JdbcBatchItemWriter 进行多线程处理。 我有一个批处理应该插入许多行(+ 1M 行)。
@Bean
public JdbcBatchItemWriter<MyDTO> InitWriter() {
JdbcBatchItemWriter<MyDTO> writer = new JdbcBatchItemWriter<MyDTO>();
writer.setItemSqlParameterSourceProvider(new BeanPropertyItemSqlParameterSourceProvider<MyDTO>());
writer.setSql("INSERT INTO ....");
writer.setDataSource(cloudDataSource);
return writer;
}
这花了我很长时间。
最佳答案
JdbcBatchItemWriter
是线程安全的,因此您可以在多个并发事务中使用它。以下是其 Javadoc 的摘录:
The writer is thread-safe after its properties are set (normal singleton behavior), so it can be used to write in multiple concurrent transactions.
因此,就您的情况而言,您可以尝试使用 Multi-threaded Step看看它是否可以提高您的工作绩效。
关于java - JdbcBatchItemWriter 多线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60400598/