一种断点重跑批处理系统和方法与流程

文档序号:25279416发布日期:2021-06-01 17:25阅读:424来源:国知局
一种断点重跑批处理系统和方法与流程

本发明涉及数据处理技术领域,尤其涉及一种断点重跑批处理系统和方法。



背景技术:

批处理操作时企业业务系统必不可少的一部分,批处理在启动之后需要将所有任务执行完成之后,才能够终止,或者批处理进程存现异常出现中断。因此,现有银行、金融公司中进行批处理时,都需要安排对应的人员进行值班,对批处理进程中出现的异常进行及时处理,确保批处理任务的继续进行。

但是现有技术中在某个批处理进程耗费大量时间处理数据之后,中途产生异常,在解决完异常批量单元之后,又需要耗费相同的时间对任务进行重跑,导致批处理进程执行时间拉长,影响用户体验,甚至影响银行或金融公司能否及时营业等关键事件。



技术实现要素:

基于此,有必要针对上述技术问题,提供一种断点重跑批处理系统和方法。

一种断点重跑批处理系统,包括:调度执行容器、批处理模块、路由模块、监控模块、预警模块和异常现场记录模块;所述调度执行容器为批处理进程和批处理程序启动入口,用于初始化数据库连接池和批处理参数,存储在内存中,并组织协调所述批处理模块、路由模块、监控模块、预警模块和异常现场记录模块之间的通信、交互和调度;所述批处理模块用于执行所述批处理进程中业务场景的处理;所述路由模块用于控制所述批处理进程中业务场景的执行顺序和异常处理;所述监控模块用于监控所述批处理进程的运行状态;所述预警模块用于在监控模块检测到批处理进程存在异常时,根据所述异常判断预警级别并发出预警通知;所述异常现场记录模块用于在监控模块检测到批处理进程存在异常时,记录当前数据处理点,并在异常处理完成后,将所述当前数据处理点发送至所述调度执行容器,所述调度执行容器从所述当前数据处理点启动,继续进行批处理进程。

在其中一个实施例中,所述批处理模块通过java、linuxshell脚本或数据库sql脚本实现。

在其中一个实施例中,所述批处理模块包括有前置批处理单元、批处理中单元和后置批处理单元;所述前置批处理单元、批处理中单元和后置批处理单元分别配置有对应的规则,所述规则通过xml文件进行存储,所述调度执行容器读取所述xml文件实现批处理配置;所述路由模块控制前置批处理单元、批处理中单元和后置批处理单元依次对批处理进程进行处理。

在其中一个实施例中,所述监控模块还用于在所述调度执行容器调度批处理时、批处理调度完成时和批处理异常时接收通知,对所述批处理进程进行监控和记录,收集所述批处理进程的当前运行环境cpu和内存使用率,并暴露查询批处理状态的接口,用于查询批处理进程的执行情况。

在其中一个实施例中,还包括:网页前端,所述网页前端用于接入所述查询批处理状态的接口,获取批处理进程的执行情况,并根据所述批处理进程的当前运行环境cpu和内存使用率判断异常出现原因。

在其中一个实施例中,还包括:日志模块,所述日志模块用于收集批处理进程运行时的日志,并汇总生成批处理报告。

在其中一个实施例中,所述预警模块配置有预警级别、预警次数、预警间隔和预警方式,所述预警级别设置有初级、中级和高级三种级别;所述预警次数用于在检测到发出的预警通知未关闭后,再次根据设置的预警间隔发出预警通知;所述预警方式包括有短信预警和邮件预警。

一种断点重跑批处理方法,包括以下步骤:通过调度执行容器启动批处理进程和批处理程序;根据批处理模块进行所述批处理进程中的业务场景处理,并通过路由模块控制所述业务场景处理的执行顺序和异常处理;根据监控模块监控所述批处理进程的运行状态;若批处理进程的运行状态存在异常时,通过异常现场记录模块记录当前数据处理点,并通过预警模块判断异常级别,根据异常级别发出预警通知;在异常处理完成后,调度执行容器从所述当前数据处理点启动,继续进行批处理进程。

在其中一个实施例中,所述若批处理进程的运行状态存在异常时,还包括:在所述监控模块检测到所述批处理进程存在一个异常的批量单元时,根据所述路由模块控制对下一个批处理单元进行处理,并通过预警模块发出初级预警通知;在所述批处理进程存在多个异常的批量单元时,通过所述调度执行器重新调用异常的批量单元,若异常的批量单元均重新启动,则继续执行批处理进程,并通过所述预警模块发出中级预警通知;若多个异常的批量单元调用次数均超过阈值,且仍存在异常的批处理单元启动失败,则终止批处理进程,并通过所述预警模块发出高级预警通知。

相比于现有技术,本发明的优点及有益效果在于:本发明能够在批处理进程中存在异常时,根据异常判断预警级别,发出预警通知,并记录当前数据处理点,在异常处理完成后,从当前数据处理点启动,继续进行批处理进程,避免批处理进程的重跑,减少批处理异常后需要花费的时间。

附图说明

图1为一个实施例中一种断点重跑批处理系统的结构示意图;

图2为一个实施例中一种断点重跑批处理方法的流程示意图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,下面通过具体实施方式结合附图对本发明做进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

如图1所示,提供了一种断点重跑批处理系统10,包括:调度执行容器11、批处理模块12、路由模块13、监控模块14、预警模块15和异常现场记录模块16;调度执行容器11为批处理进程和批处理程序启动入口,用于初始化数据库连接池和批处理参数,存储在内存中,并组织协调批处理模块12、路由模块13、监控模块14、预警模块15和异常现场记录模块16之间的通信、交互和调度;批处理模块12用于执行批处理进程中业务场景的处理;路由模块13用于控制批处理进程中业务场景的执行顺序、异常处理和重试次数;监控模块14用于监控批处理进程的运行状态;预警模块15用于在监控模块14检测到批处理进程存在异常时,根据异常判断预警级别并发出预警通知;异常现场记录模块16用于在监控模块14检测到批处理进程存在异常时,记录当前数据处理点,并在异常处理完成后,将所述当前数据处理点发送至所述调度执行容器11,所述调度执行容器11从所述当前数据处理点启动,继续进行批处理进程。

在本实施例中,通过调度执行容器11组织协调批处理模块12、路由模块13、监控模块14、预警模块15和异常现场记录模块16之间的通信、交互和调度;通过批处理模块12进行批处理进程中的业务场景的处理;路由模块13控制批处理进程中业务场景的执行顺序、异常处理和重试次数;监控模块14监控批处理进程的运行状态;在监控模块14检测到批处理进程存在异常时,异常现场记录模块16记录当前数据处理点,预警模块15根据异常判断预警级别并发出预警通知,在异常处理完成之后,调度执行容器11从当前数据处理点启动,继续进行批处理进程,能够避免批处理异常后的重跑,减少批处理异常处理需要花费的时间,从而提高处理速度,提升用户体检,确保企业及时营业。

其中,批处理模块12可以通过java、linuxshell脚本或数据库sql脚本实现。

其中,批处理模块12前置批处理单元、批处理中单元和后置批处理单元;前置批处理单元、批处理中单元和后置批处理单元分别配置有对应的规则,规则通过xml文件进行存储,调度执行容器11读取xml文件实现批处理配置;路由模块13控制前置批处理单元、批处理中单元和后置批处理单元依次对批处理进程进行处理。

具体地,批处理模块12负责具体的业务场景处理,并将业务场景细分为批处理前、批处理中和批处理后三个时点,每个时点实现的业务场景可以根据开发者的实际需求进行开发,并通过java、linuxshell脚本或数据库sql脚本实现。

具体地,规则通过xml文件存储,从而能够通过后端直接修改xml文件或通过暴露的http接口在前端网页进行修改。

其中,批处理模块12还用于文件生成,具体包括:检测当前文件中是否存在冗余数据;若存在冗余数据,将冗余数据进行删除,获取第一文件;将第一文件上传至ftp数据库进行存储。

具体地,例如,在某银行晚间批处理需要生成账务文件时,批处理前,需要检测冗余数据,并通过sql脚本对冗余数据进行删除;批处理中,通过java将删除冗余后数据的数据文件生成账务文件;批处理后,通过java将账务文件上传至ftp服务器进行保存。

其中,路由模块13用于控制批量单元执行的先后顺序和执行时间,此外,在批量单元存在异常时,还可以控制调取执行容器11对异常批量单元的重启次数,以及异常之后是否继续执行下一批量单元。

具体地,若批处理进程存在一个异常批量单元,批处理进程中断后,路由模块13可以控制继续执行下一个批量单元,或控制停止批处理进程,通过人工干预重新启动批处理后才能继续运行;在无人干预时,通过调度执行器11重新调用异常的批量单元,知道调用次数超过可配置的运行次数,异常批量单元仍未启动,则终止批处理进程。

其中,监控模块14还用于在调度执行器11调度批处理时、批处理调度完成时和批处理异常时接收通知,对批处理进程进行监控和记录,收集批处理进程的当前运行环境cpu和内存使用率,并暴露查询批处理状态的接口,用于查询批处理执行情况。

具体地,监控模块14用于记录批处理运行时的状态,调度执行容器11在调度批处理时、批处理调度完成时和批处理异常时均需对监控模块14进行通知,对批处理进程进行监控和记录;同时收集当前运行环境cpu和内存使用率,对外暴露查询批处理状态的接口,用于查询批处理进程的执行情况。

其中,还包括:网页前端,网页前端用于接入查询批处理状态的接口,获取批处理进程的执行情况,并根据批处理进程的当前运行环境cpu和内存使用率判断异常出现原因。

具体地,网页前端可以通过接入查询批处理状态的接口,获取当前批处理的执行情况,对批处理的执行情况进行展示,并对批处理进程的当前运行环境cpu和内存使用率进行展示,从而判断异常出现原因,便于管理人员进行对应的处理。

其中,还包括:日志模块,日志模块用于收集批处理进程运行时的日志,并汇总生成批处理报告。

具体地,日志模块可以记录一段时间内的批处理进程运行情况,并获取批处理报告,根据预设时间间隔发送至管理人员,便于管理人员进行查看。

其中,预警模块15配置有预警级别、预警次数、预警间隔和预警方式,预警级别有初级、中级和高级三种级别;预警次数用于在检测到发出的预警通知未被关闭后,再次根据设置的预警间隔发出预警通知;预警方式包括有短信预警和邮件预警。

具体地,管理人员可以根据预警级别作出相应的应对策略,预警通知内可以包括批处理进程的异常批量单元信息、当前运行环境cpu和内存使用率等

在一个实施例中,如图2所示,提供了一种断点重跑批处理方法,包括以下步骤:

步骤s201,通过调度执行容器启动批处理进程和批处理程序。

步骤s202,根据批处理模块进行批处理进程中的业务场景处理,并通过路由模块控制所述业务场景处理的执行顺序和异常处理。

步骤s203,根据监控模块监控所述批处理进程的运行状态。

步骤s204,若批处理进程的运行状态存在异常时,通过异常现场记录模块记录当前数据处理点,并通过预警模块判断预警级别,根据预警级别发出预警通知。

步骤s205,在异常处理完成后,调度执行容器从当前数据处理点启动,继续进行批处理进程。

在本实施例中,通过调度执行容器启动批处理进程批处理程序,根据批处理模块进行批处理进程中的业务场景处理,并通过路由模块控制业务场景处理的执行顺序和异常处理,根据监控模块监控批处理进程的运行状态,在批处理进程的运行状态存在异常时,通过异常现场记录模块记录当前数据处理点,并根据预警模块判断预警级别,根据预警级别发出预警通知,避免了批处理异常后的重跑,减少批处理异常处理需要花费的时间,从而提高处理速度,提升用户体检,确保企业及时营业。

其中,在批处理进程的运行状态存在异常时,还包括:在监控模块检测到批处理进程存在一个异常的批处理单元时,根据路由模块控制对下一个批处理单元进行处理,并通过预警模块发出初级预警通知;在批处理进程中存在多个异常的批处理单元时,通过调度执行器再次调用异常的批处理单元,若异常的批处理单元均重新启动,则继续执行批处理进程,并通过预警模块发出中级预警通知;若多个异常的批量单元调用次数均超过阈值,且仍存在异常的批量单元启动失败,则终止批处理进程,并通过预警模块发出高级预警通知。

具体地,在多个异常的批量单元调用次数均超过阈值,且仍存在异常的批量单元启动失败,终止批处理进程之后,通过管理人员对异常处理完成,然后从异常现场记录模块记录的当前数据处理点启动,继续进行批处理进程,从而避免重跑,缩短批处理异常时的执行时间。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(read-onlymemory,rom)或随机存储记忆体(randomaccessmemory,ram)等。

显然,本领域的技术人员应该明白,上述本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在计算机存储介质(rom/ram、磁碟、光盘)中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。所以,本发明不限制于任何特定的硬件和软件结合。

以上内容是结合具体的实施方式对本发明所做的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1