【问题标题】:JdbcBatchItemWriter multi threadJdbcBatchItemWriter 多线程
【发布时间】:2020-02-25 17:55:01
【问题描述】:

有没有办法让 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;
}

这花了我很长时间。

【问题讨论】:

标签: java spring jdbc spring-batch


【解决方案1】:

JdbcBatchItemWriter 是线程安全的,因此您可以在多个并发事务中使用它。以下是其Javadoc的摘录:

写入器在设置属性后是线程安全的(正常的单例行为),因此可用于写入多个并发事务。

因此,在您的情况下,您可以尝试使用Multi-threaded Step,看看它是否能提高您的工作绩效。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-22
    • 2011-12-16
    • 1970-01-01
    相关资源
    最近更新 更多