Java JdbcBatchItemWriter多线程
有没有办法让JdbcBatchItemWriter多线程运行。 我有一批应该插入许多行(+1M行)Java JdbcBatchItemWriter多线程,java,spring,jdbc,spring-batch,Java,Spring,Jdbc,Spring Batch,有没有办法让JdbcBatchItemWriter多线程运行。 我有一批应该插入许多行(+1M行) @Bean 公共JdbcBatchItemWriter InitWriter(){ JdbcBatchItemWriter writer=新的JdbcBatchItemWriter(); writer.setItemSqlParameterSourceProvider(新的BeanPropertyItemSqlParameterSourceProvider()); writer.setSql(“插
@Bean
公共JdbcBatchItemWriter InitWriter(){
JdbcBatchItemWriter writer=新的JdbcBatchItemWriter();
writer.setItemSqlParameterSourceProvider(新的BeanPropertyItemSqlParameterSourceProvider());
writer.setSql(“插入…”);
writer.setDataSource(cloudDataSource);
返回作者;
}
这花了我很多时间。JdbcBatchItemWriter是线程安全的,因此您可以在多个并发事务中使用它。以下是它的一段摘录: writer的属性设置后是线程安全的(正常的单例行为),因此它可以用于写入多个并发事务
因此,在您的情况下,您可以尝试使用,看看它是否提高了作业的性能。这将非常有用。无需并行执行JdbcBatchItemWriter,让Spring Batch通过分区来处理它。这是否回答了您的问题?
@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;
}