最新国产好看的视频,伊人天堂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ù)的應用,廣泛應用于數(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í)行細節(jié)。

常見應用場景

  • 數(shù)據(jù)遷移:將大量數(shù)據(jù)從一個數(shù)據(jù)庫遷移到另一個數(shù)據(jù)庫,或者從文件系統(tǒng)遷移到數(shù)據(jù)庫等。
  • 批量數(shù)據(jù)處理:對海量數(shù)據(jù)進行清洗、轉(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ù)進行過濾。但其中要注意的點就是需要再處理器中獲取這個參數(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ī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)境

    今天我將與大家分享一下我學JAVA WEB寫的一些小實例 ,我個人是不太喜歡書本上的晦澀的概念的,所以我花了更多的時間在一些應用實例上,我覺得這樣的學習方式很適合我,由簡到繁,由淺入深
    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ū)別進行了詳細的分析介紹。需要的朋友參考下
    2013-05-05
  • IDEA生成servlet程序的實現(xiàn)步驟

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

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

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

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

    Java Management Extensions管理擴展原理解析

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

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

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

    Java使用ChatGPT的API詳解

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

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

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

    Elasticsearch常用DSL語法巧記

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

最新評論

阳谷县| 梁河县| 霍山县| 海丰县| 丰原市| 手机| 耒阳市| 抚远县| 水城县| 澄城县| 普兰店市| 特克斯县| 苏州市| 新巴尔虎左旗| 沿河| 东乌珠穆沁旗| 桦川县| 营口市| 宁蒗| 梧州市| 星子县| 兰坪| 浦县| 兴安盟| 腾冲县| 梨树县| 从江县| 内黄县| 安西县| 枣庄市| 宿迁市| 邵阳市| 麦盖提县| 商南县| 遂昌县| 图木舒克市| 乡城县| 南投市| 依安县| 宿松县| 石城县|