最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

springbatch使用過程詳解

 更新時間:2025年10月08日 10:23:23   作者:nu11cat  
Spring?Batch?是一個功能強大且可擴展的批量處理框架,旨在幫助開發(fā)者高效地處理大量數(shù)據(jù)的任務(wù),本文給大家介紹springbatch使用過程詳解,感興趣的朋友一起看看吧

什么是 Spring Batch?

Spring Batch 是一個功能強大且可擴展的批量處理框架,旨在幫助開發(fā)者高效地處理大量數(shù)據(jù)的任務(wù)。它提供了一系列與批處理相關(guān)的功能,比如批量數(shù)據(jù)讀取、處理、寫入、事務(wù)管理、作業(yè)執(zhí)行和監(jiān)控等。Spring Batch 適用于需要在后臺處理大規(guī)模數(shù)據(jù)或定時任務(wù)的應(yīng)用,廣泛應(yīng)用于數(shù)據(jù)遷移、數(shù)據(jù)處理、批量報表生成等場景。

定義與特點

  • 批量任務(wù)支持:Spring Batch 專注于批量任務(wù)的管理,包括任務(wù)的執(zhí)行、事務(wù)的處理、異常的管理、作業(yè)的調(diào)度等。
  • 事務(wù)管理:內(nèi)置強大的事務(wù)支持,保證數(shù)據(jù)的一致性和完整性。在處理大量數(shù)據(jù)時,Spring Batch 能夠確保數(shù)據(jù)在多個步驟之間的可靠性。
  • 高效性與可擴展性:針對大數(shù)據(jù)量的處理,Spring Batch 提供了流式讀取和寫入的能力,支持分片、并行處理等高效機制。
  • 作業(yè)監(jiān)控與管理:Spring Batch 提供內(nèi)置的作業(yè)監(jiān)控功能,可以追蹤作業(yè)執(zhí)行狀態(tài)、查看歷史執(zhí)行記錄、獲取執(zhí)行細(xì)節(jié)。

常見應(yīng)用場景

  • 數(shù)據(jù)遷移:將大量數(shù)據(jù)從一個數(shù)據(jù)庫遷移到另一個數(shù)據(jù)庫,或者從文件系統(tǒng)遷移到數(shù)據(jù)庫等。
  • 批量數(shù)據(jù)處理:對海量數(shù)據(jù)進(jìn)行清洗、轉(zhuǎn)換和加載(ETL過程),例如從多個數(shù)據(jù)源合并數(shù)據(jù)到數(shù)據(jù)倉庫。
  • 定時任務(wù)處理:處理定時生成的報告、日志分析、定期清理過期數(shù)據(jù)等。
  • 數(shù)據(jù)同步:定時同步不同系統(tǒng)之間的數(shù)據(jù)。

背景:并發(fā)抽取接口數(shù)據(jù)。通過ai生成后調(diào)試了老半天才能使,記錄一下

主要是處理器Processor, 讀取器Reader和寫庫用的Writer

使用了框架的Shell功能,挺強大的。

如果要對接口讀取的數(shù)據(jù)做過濾,可以增加執(zhí)行參數(shù),如:–skip-filter

  • 這個參數(shù)我是用在Processor中的,因為要對已經(jīng)獲取的數(shù)據(jù)進(jìn)行過濾。但其中要注意的點就是需要再處理器中獲取這個參數(shù)
public class ExamReportItemProcessor implements ItemProcessor<ExamReportDto, ExamReportEntity> {
    @Autowired
    private InpatientValidationService inpatientValidationService;
    private static final DateTimeFormatter DATE_TIME_FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
    private boolean skipFilter = false;
    @BeforeStep
    public void beforeStep(StepExecution stepExecution) {
        JobParameters jobParameters = stepExecution.getJobParameters();
        String skipFilterStr = jobParameters.getString("skipFilter");
        this.skipFilter = "true".equalsIgnoreCase(skipFilterStr);
    }

還要注意:并發(fā)執(zhí)行命令需要用到注解@StepScope,否則會陷入分批次拉數(shù)據(jù)卻只調(diào)用一次的尷尬, 調(diào)了許久

# 這是在BatchConfig.java中的配置
@Bean
@StepScope
 public ExamReportItemReader examReportItemReader() {
     return new ExamReportItemReader();
 }
 @Bean
 @StepScope
 public ExamReportItemProcessor examReportItemProcessor() {
     return new ExamReportItemProcessor();
 }

另外我是用cursor的auto模式調(diào)試的,出現(xiàn)問題就將問題和輸入的命令進(jìn)行反饋,經(jīng)歷了4-5次才能跑通了

放個私有的gitee地址

過程記錄

# 使用curl檢測接口,使用的POST格式,(接口每次只返回一頁數(shù)據(jù)和總頁數(shù).為了方便,直接全部保存)
curl -X POST “http:xxxx“ -H "Content-Type: application/json" -d '{"StartTime": "2025-01-01 00:00:00"....}'
# 使用json_pp美化json語句,挺方便,沒有額外安裝工具
echo '{"name":"john","age":30}' | json_pp!74

到此這篇關(guān)于springbatch使用過程詳解的文章就介紹到這了,更多相關(guān)springbatch使用內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • java servlet結(jié)合Oracle搭建java的web開發(fā)環(huán)境

    java servlet結(jié)合Oracle搭建java的web開發(fā)環(huán)境

    今天我將與大家分享一下我學(xué)JAVA WEB寫的一些小實例 ,我個人是不太喜歡書本上的晦澀的概念的,所以我花了更多的時間在一些應(yīng)用實例上,我覺得這樣的學(xué)習(xí)方式很適合我,由簡到繁,由淺入深
    2015-12-12
  • 詳解利用Spring的AbstractRoutingDataSource解決多數(shù)據(jù)源的問題

    詳解利用Spring的AbstractRoutingDataSource解決多數(shù)據(jù)源的問題

    本篇文章主要介紹了詳解利用Spring的AbstractRoutingDataSource解決多數(shù)據(jù)源的問題。具有一定的參考價值,有興趣的可以了解一下。
    2017-03-03
  • 基于Java多線程notify與notifyall的區(qū)別分析

    基于Java多線程notify與notifyall的區(qū)別分析

    本篇文章對Java中多線程notify與notifyall的區(qū)別進(jìn)行了詳細(xì)的分析介紹。需要的朋友參考下
    2013-05-05
  • IDEA生成servlet程序的實現(xiàn)步驟

    IDEA生成servlet程序的實現(xiàn)步驟

    這篇文章主要介紹了IDEA生成servlet程序的實現(xiàn)步驟,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03
  • Java?時間相減算法題解示例

    Java?時間相減算法題解示例

    這篇文章主要為大家介紹了Java?時間相減算法題解示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-12-12
  • Java Management Extensions管理擴展原理解析

    Java Management Extensions管理擴展原理解析

    這篇文章主要介紹了Java Management Extensions管理擴展原理解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-04-04
  • SpringBoot結(jié)合Redis實現(xiàn)序列化的方法詳解

    SpringBoot結(jié)合Redis實現(xiàn)序列化的方法詳解

    Spring提供了一個RedisTemplate來進(jìn)行對Redis的操作,但是RedisTemplate默認(rèn)配置的是使用Java本機序列化。如果要對對象操作,就不是那么的方便。所以本文為大家介紹了另一種SpringBoot結(jié)合Redis實現(xiàn)序列化的方法,需要的可以參考一下
    2022-06-06
  • Java使用ChatGPT的API詳解

    Java使用ChatGPT的API詳解

    OpenAI API 幾乎可以應(yīng)用于任何涉及理解或生成自然語言或代碼的任務(wù)。本文將帶你們介紹Java如何使用ChatGPT的API,感興趣的同學(xué)可以跟著小編一起來學(xué)習(xí)
    2023-04-04
  • Spring操作JdbcTemplate數(shù)據(jù)庫的方法學(xué)習(xí)

    Spring操作JdbcTemplate數(shù)據(jù)庫的方法學(xué)習(xí)

    這篇文章主要為大家介紹了Spring操作JdbcTemplate數(shù)據(jù)庫方法學(xué)習(xí),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-05-05
  • Elasticsearch常用DSL語法巧記

    Elasticsearch常用DSL語法巧記

    這篇文章主要為大家介紹了Elasticsearch常用DSL語法巧記,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2024-01-01

最新評論

桂林市| 台中市| 乡城县| 钦州市| 黎城县| 历史| 襄垣县| 灵寿县| 宁陵县| 庆元县| 常州市| 商南县| 屏山县| 阜宁县| 琼结县| 井冈山市| 小金县| 垣曲县| 富蕴县| 手游| 图们市| 平安县| 双鸭山市| 舞阳县| 东安县| 镇巴县| 正宁县| 香格里拉县| 新河县| 株洲县| 嵊泗县| 昌乐县| 永嘉县| 公主岭市| 鲁甸县| 鲁山县| 宽城| 博爱县| 秦皇岛市| 大宁县| 梧州市|