日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

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

發布時間:2025/1/21 javascript 67 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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详解 (七)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。