欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 前端技术 > javascript >内容正文

javascript

SpringBatch 多线程(TaskExecutor)启动Job详解 (七)

发布时间:2025/1/21 javascript 74 豆豆
生活随笔 收集整理的这篇文章主要介绍了 SpringBatch 多线程(TaskExecutor)启动Job详解 (七) 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

文章目录

    • 一、SpringBatch配置多线程
    • 二、SpringBatch多线程的tasklet配置

前言:使用单线程,单个进程作业可以解决许多批处理问题,如果我们想要job执行的速度更快,SpringBatch提供了对多线程的支持。只需要简单的配置,我们的job就可以使用多线程运行。

代码已上传GitHub上面地址:https://github.com/FadeHub/spring-boot-learn/tree/master/spring-boot-springbatch

SpringBatch其它文章直通车:

  • SpringBatch读单个文件(FlatFileItemReader)和写单个文件(FlatFileItemWriter)(一)
  • SpringBatch顺序读取多文件(MultiResourceItemReader)和顺序写文件(MultiResourceItemWriter)(二)
  • SpringBatch读数据库(MyBatisPagingItemReader)(三)
  • SpringBatch读文件(FlatFileItemReader)写据库(MyBatisBatchItemWriter)(四)
  • SpringBatch 监听器之Job监听器(JobExecutionListener)和Step监听器(StepExecutionListener)(五)
  • SpringBatch 监听器之Chunk监听器(ChunkListener)和Skip监听器(SkipListener)(六)

一、SpringBatch配置多线程

配置多线程最简单的方法是,在Step配置中添加一个TaskExecutor

多线程Step

@Beanpublic Step catThreadStep() {return stepBuilderFactory.get("catThreadStep")// .listener(catStepListener).listener(catChunkListener).<Cat, CafeCat>chunk(10).reader(catCommonMybatisItemReader()).processor(cafeCatProcessor).writer(cafeCatCommonFileItemWriter()).taskExecutor(taskExecutor()).build();}

TaskExecutor实现类

@Beanpublic TaskExecutor taskExecutor(){return new SimpleAsyncTaskExecutor("spring_batch");}

注意:上述配置的结果是Step通过在单独的执行线程中读取,处理和写入每个块(每个提交间隔)来执行。作业的执行没有固定的顺序。

二、SpringBatch多线程的tasklet配置

多线程tasklet默认t配置为4,您可能需要增加tasklet以确保线程池充分利用。
在Step中提供了对tasklet数量配置,关键字为:throttleLimit

@Beanpublic Step catThreadStep() {return stepBuilderFactory.get("catThreadStep")// .listener(catStepListener).listener(catChunkListener).<Cat, CafeCat>chunk(10).reader(catCommonMybatisItemReader()).processor(cafeCatProcessor).writer(cafeCatCommonFileItemWriter()).taskExecutor(taskExecutor()).throttleLimit(8).build();}

我们在用SpringBatch多线程时候,一定要注意作业的执行没有固定的顺序。所以多线程用的时候一定要慎用。

总结

以上是生活随笔为你收集整理的SpringBatch 多线程(TaskExecutor)启动Job详解 (七)的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。