當前位置:
首頁 >
前端技术
> 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