当前位置:
首页 >
前端技术
> javascript
>内容正文
javascript
SpringBatch 多线程(TaskExecutor)启动Job详解 (七)
生活随笔
收集整理的这篇文章主要介绍了
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
我们在用SpringBatch多线程时候,一定要注意作业的执行没有固定的顺序。所以多线程用的时候一定要慎用。
总结
以上是生活随笔为你收集整理的SpringBatch 多线程(TaskExecutor)启动Job详解 (七)的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: SpringBatch 监听器之Job监
- 下一篇: SpringBatch 配置并行启动Jo