跑批利器--示例

article/2025/10/16 5:37:36

        接下来我们将通过简单的一个在线商店的应用示例来展示如何使用SpringBatch.通过这个示例我们可以进一步去理解SpringBatch批量处理程序它是如何实现高效的读写数据,何时去使用内部组件,如何实现你自己的组件,以及如何配置一个批量任务在Spring容器中.

       这里我们简单描述一下业务需求.一个公司A想要扩展它的业务.主业是通过网络来销售货物.为了扩展他们选择建立一个专门的在线商店应用.他们将使用批量作业来填充来自内部目录在线数据库转有系统.如下图所示,改系统将会定期处理数据,每天晚上在目录中增加新产品或者更新现有产品.

    

计算机生成了可选文字:Catalog System Batch Online store application

 

      导入产品批量程序将会导入产品记录从一个富文本文件,然后把他们更新到在线商店的数据库中.

      

计算机生成了可选文字:Decompressi ng Reading and writing D base u pdated Compress"

    具体流程如上图,目录系统会压缩富文本文件,然后批量程序去解析此文件,然后进行读写操作更新到对应的数据库中.

   

     读写产品目录可以说是一个SpringBatch任务的核心.目录系统会提供一个富文本文件,里面包含了产品的目录.SpringBatchJob就需要把他导入到在线商店数据库中.

     相对而言读写富文本文件对SpringBatch而言是比较轻松的,你所需要做的就是配置一个SpringBatch的组件去读取文件的内容,然后再实现一个简单的写的接口,然后再创建一个配置文件来掌控批量处理的流程.如下图.

     

    

计算机生成了可选文字:stuau)auu,M 冖 冖 冖 囬 「 一 鬥

     因为读写还有复制他们作为通用的行为在批量程序中,因此SpringBatch为他们提供了特别的支持.内部包含了很多的读写组件.同时它也提供了面向批量的处理方式称之为:chunk processing .暂且翻译成块处理吧.

     在上图我们看到ItemReaderItemWriter.Spring Batch 主要是通过他们两个来处理读写的场景需求.

     在块处理的时候,SpringBatch提供一个可选择的处理步骤,你可以在把要处理的内容在发给ItemReader的时候进行提前处理,这样的话,如果你有不想写某些内容的时候会有帮助的.具体的处理步骤就是实现了ItemProcessor接口.

   

计算机生成了可选文字:process() transformed ite m read() process() transformed itern • write(transformed items)

 

            读取文件接口:

packageorg.springframework.batch.item;

publicinterface ItemReader<T> {

Tread() throws Exception, UnexpectedInputException,

ParseException,

NonTransientResourceException;

}

 

转换文件接口(可选)

packageorg.springframework.batch.item;

publicinterface ItemProcessor<I, O> {

Oprocess(I item) throws Exception;

}

 

写文件接口:

packageorg.springframework.batch.item;

importjava.util.List;

publicinterface ItemWriter<T> {

voidwrite(List<? extends T> items) throws Exception;

}

 

      以上三个接口便是流程中所设计到的读写和处理接口,在接下来的文章中我们将会展示如何配置SpringBatch来读取一个文本文件的内容到数据库中.

  

 

 

 

 

 

 

    


http://chatgpt.dhexx.cn/article/3pt1b2lB.shtml

相关文章

如何设计一个多线程处理跑批功能

一、背景 最近承接了一个需求&#xff0c;背景是用户当天可以参与比赛竞猜&#xff0c;当天20点前参与竞猜&#xff0c;第二天上午10点出结果。系统的实现思路是用户参与竞猜时增加竞猜记录&#xff0c;第二天早上9点开始进行跑批&#xff0c;跑批依赖业务的配置&#xff0c;要…

跑批利器--批处理应用程序

目前笔者正在进行直销银行互联网核心的设计和研发,在银行相关系统中有一块内容比较关键,那就是跑批.因此接触到了SpringBatch的相关内容,作为学习和记录,有必要将SpringBatch的相关技术点和实际项目中遇到的问题记录下来,同时也跟各位来进行分享和学习. 首先先了解一下什么是批…

跑批 流程、代码梳理

权限系统 全部——ETL服务——计划维护 日程表&#xff1a;到时间触发跑批任务 复制任务编号 ETL设计——作业设计——自定义java——插入语句 找到类所在位置 org.isscloud.portal.agent.scf.batch.FinaResultBatch base下的agent下的scf.batch包下的FinaResultBatch类 S…

跑批为什么这么难

文章目录 问题分析SPL用于跑批应用效果SPL资料 业务系统产生的明细数据通常要经过加工处理&#xff0c;按照一定逻辑计算成需要的结果&#xff0c;用以支持企业的经营活动。这类数据加工任务一般会有很多个&#xff0c;需要批量完成计算&#xff0c;在银行和保险行业常常被称为…

Java开源专业计算引擎:跑批真的这么难吗?

业务系统产生的明细数据通常要经过加工处理&#xff0c;按照一定逻辑计算成需要的结果&#xff0c;用以支持企业的经营活动。这类数据加工任务一般会有很多个&#xff0c;需要批量完成计算&#xff0c;在银行和保险行业常常被称为跑批&#xff0c;其它像石油、电力等行业也经常…

银行跑批业务 的 初步理解(批量批量.....流水账)

一、初步理解 白天的柜台交易, 实时的 对帐户进行操作。 晚上 批量 , 比如 一些报表的生成 , 定期储蓄到期的自动转存 , 行内行外业务清分清算 &#xff0c; 有时还可能赶上利息计算....... 当然 不是所有的数据都是实时操作 , 因此跑批就是为此诞生。 二、逐渐深入 批量…

跑批设计-如何才能让跑批更加高速

跑批的应用场景 在开发过程中跑批经常使用的地方&#xff1a; 消息类&#xff1a;到期失效以及到期批量通知客户计算类&#xff1a;在财务中的罚息、计提、计息文件类&#xff1a;对账信息、还款信息同步以及报表生成 跑批数据特点 数据量非常大实时性并不是特别高&#xf…

跑批bat、shell

“跑批”也叫“批量处理”。批处理&#xff0c;也称为批处理脚本。顾名思义&#xff0c;批处理就是对某对象进行批量的处理&#xff0c;通常被认为是一种简化的脚本语言&#xff0c;它应用于DOS和Windows系统中。批处理文件的扩展名为bat 。 批处理定义&#xff1a;顾名思义&a…

gPRC基础教程

1.什么是RPC? RPC 远过程调用.在理解远程调用之前,首先我们来了解一下本地调用,只有更好的理解了本地调用,才能更好的理解RPC. 1.1 本地调用ex:本地的函数调用在函数调用的时候,一般会经过几个步骤 返回地址入栈参数入栈提升堆栈空间函数参数的复制执行函数调用清空堆栈 1.…

GPRM/GNRMC定位信息的读取与解析

GPRM/GNRMC定位信息的读取与解析 参考网址&#xff1a;http://www.cnblogs.com/88223100/p/GPRM_GNRMC_Transform.html 帧头 UTC时间 状态 纬度 北纬/南纬 经度 东经/西经 速度 $GPRMC hhmmss.sss A/V ddmm.mmmm N/S dddmm.mmmm E/W 节 方位角 UTC日期 磁偏角…

GPRMC转经纬度 地理位置

前言 一、GPRMC是什么&#xff1f; 二、GPRMC如何转经纬度 三、python加地图实现定位 1.Python代码 2.地图定位 四、通过python直接输出位置的尝试 1.需要用到的库geocoder 2.需要准备的库folium 总结 前言 在实际汽车路测的时候会出现GPS偏移&#xff0c;这个时候就需要将GPR…

USB转串口 模拟 PPS+GPRMC 进行授时

把 PC的系统时间 通过USB转串口发出来 来模拟 PPSGPRMC 授时, 这大冷天的, 用来在室内测试MCU或者SOC的授时功能, 传感器的授时与线束检测, 测试干扰等等, 还是比较合适的. 如下图, 左边为 USB转9针RS232串口, 右边为 USB转TTL串口 原理: PPS 有 3V3 / 5V / 12V 等规格, 这里…

GPC规范-SCP02

SPC02 流程 SPC02 指令 命令&#xff1a; 响应&#xff1a; 举例回复&#xff1a; 密钥分散数据&#xff1a; 0000FFFFFFFFFFFFFFFF Key Info&#xff1a; 20 02&#xff08;scp02&#xff09; Card挑战数&#xff1a; 001AC6619BE83082 Card加密值&#xff1a; 7…

STM32模拟GPS输出PPS、GPRMC与VLP16时钟同步

这里写目录标题 1.VLP16与GPS相关的管脚&#xff1a;2.利用GPS信息完成时间同步 TimeSynchronization3.查找同步关系4.修改ROS代码结论 1.VLP16与GPS相关的管脚&#xff1a; GPS-RECEIVE 接收GPS的GPRMC语句&#xff0c;注意是RS232电平(high 3-15V&#xff0c;low 1.2V以下)&…

c++处理GPRMC

#include <iostream> #include<string> #include<vector>// A::member 表示A成员中的member // namespace my_vary202234610229 namespace是c的关键字&#xff0c;将变量定义在自己创建的my_vary命名空间 // 访问命名空间中的变量需要作用域分解符 // 命名空…

gPRC基本介绍

1.说明 gRPC英文全名为Google Remote Procedure Call&#xff0c; 即Google远程过程调用&#xff0c; 是Google发布的一个高性能、通用的开源RPC框架&#xff0c; 2.gRPC定义 gRPC是一个现代的开源高性能RPC框架&#xff0c; 可以在任何环境中运行。 它可以高效地连接数据中心内…

自动驾驶时间同步分析概述--PPS/GPRMC/PTP/全域架构时间同步方案

时间同步的重要性在生活中已经充分体现。试想你因一个姑娘在酒吧和别人大打出手&#xff0c;并约定下周六早上九点在后海小树林里进行群体活动。为此你微信召集了在南非、印度、泰国干建筑的好兄弟。可在你如期赴约的时候&#xff0c;发现队友只有河畔的孤影。当你在病床上睁开…

U-BLOX GPS 模块及GPRMC指令解析

受朋友所托&#xff0c;调试一款GPS模块&#xff0c;该模块是UBLOX的NEO-6M GPS模组。想到用这款GPS的人较多&#xff0c;自己日后也有可能在用到这个模块&#xff0c;就写下这份笔记。 一、介绍 基本信息如下&#xff1a; 1、 模块采用U-BLOX NEO-6M模组&#xff0c;体积小巧&…

ROS节点解析GPS数据:GPRMC/GPFDP/HEADINGA

数据解析&#xff0c;肯定是要知道数据格式的&#xff1a; 数据格式参考&#xff1a;&#xff08;前人已经总结的比较齐全了&#xff09; https://blog.csdn.net/u010384390/article/details/78432016?ops_request_misc%257B%2522request%255Fid%2522%253A%2522163031225416…

python各种模块,迭代器,生成器

从逻辑上组织python代码&#xff08;变量&#xff0c;函数&#xff0c;类&#xff0c;逻辑&#xff1a;实现一个功能&#xff09; 本质就是.py结尾的python文件(文件名&#xff1a;test.py,对应的模块名就是test) 包&#xff1a;用来从逻辑上组织模块的,本质就是一个目录&#…