CN110727539A - 批处理任务中的异常处理方法、系统及电子设备 - Google Patents

批处理任务中的异常处理方法、系统及电子设备 Download PDF

Info

Publication number
CN110727539A
CN110727539A CN201911313271.1A CN201911313271A CN110727539A CN 110727539 A CN110727539 A CN 110727539A CN 201911313271 A CN201911313271 A CN 201911313271A CN 110727539 A CN110727539 A CN 110727539A
Authority
CN
China
Prior art keywords
task
data
executed
failed
abnormal data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201911313271.1A
Other languages
English (en)
Inventor
倪琴琴
翁国海
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Jiangrongxin Technology Co Ltd
Original Assignee
Beijing Jiangrongxin Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Jiangrongxin Technology Co Ltd filed Critical Beijing Jiangrongxin Technology Co Ltd
Priority to CN201911313271.1A priority Critical patent/CN110727539A/zh
Publication of CN110727539A publication Critical patent/CN110727539A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0715Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a system implementing multitasking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Software Systems (AREA)
  • Retry When Errors Occur (AREA)

Abstract

本发明提供一种批处理任务中的异常处理方法、系统和电子设备,该方法包括按照预设规则将待处理的数据划分为n个数据库,其中每个数据库对应设置一个数据库节点;将待执行的作业拆分为n个任务,每个任务对应地执行一个所述数据库节点相关的数据,同时记录每个任务的执行情况;在作业执行过程中,若其中一个任务因数据异常而执行失败时,根据执行情况查找该失败的任务,通过该失败的任务所对应的数据库节点查找异常数据并进行更正处理;在更正该异常数据后,跳过已经执行成功的任务,直接从所述因数据异常而执行失败的任务继续执行该作业,直至执行完成所有n个任务。通过这种方法,在任务重跑时不会遗漏或重复处理数据,减少重跑需要的时间。

Description

批处理任务中的异常处理方法、系统及电子设备
技术领域
本发明属于数据处理技术领域,具体涉及一种批处理任务中的异常处理方法、系统及电子设备。
背景技术
批处理操作是企业业务系统不可或缺的一部分。现有技术中的批处理异常数据的方法是:基于Spring核心的 Spring Batch提供一个轻量级的综合批处理框架,在事务管理、任务块处理、任务启动、任务状态控制等方面提供了大量的接口。但由于存在来源数据的复杂性、上游系统提供的数据未做到全面的检查以及依赖的环境异常等原因,都有可能导致批处理执行发生中断,导致业务处理数据的不完整、业务逻辑的缺失延续性,也浪费了批处理任务的执行时间;尽管Spring Batch本身提供断点续跑的功能,但只能在单线程状态下启用该功能,对于大数据量或者处理时间有要求的场景,断点记录就会发生错误,重跑时会遗漏或者重复处理数据。
在目前实际的业务场景中,动则几千万的数据量,单线程必然无法满足处理性能的要求。因此,在保证处理性能的前提下,为了解决异常任务,本发明提出了多节点异常处理方法。
发明内容
本发明的目的是提供一种批处理任务中的异常处理方法、系统及电子设备,以解决现有技术中的问题。
本发明的技术方案是:
本发明的一个方面,提供一种批处理任务中的异常处理方法,该方法包括以下步骤:
按照预设规则将待处理的数据划分为n个数据库,其中每个数据库对应设置一个数据库节点;
将待执行的作业拆分为n个任务,每个所述任务对应地执行一个所述数据库节点相关的数据,同时记录每个任务的执行情况;
在作业执行过程中,若其中一个任务因数据异常而执行失败时,则根据执行情况查找该失败的任务,并通过该失败的任务所对应的数据库节点查找异常数据并进行更正处理;在更正该异常数据后,跳过已经执行成功的任务,直接从所述因数据异常而执行失败的任务继续执行该作业,直至执行完成所有n个任务。
进一步的,在按照预设规则将待处理的数据划分为n个数据库,其中每个数据库对应设置一个数据库节点后;该方法还包括以下步骤:
当数据库节点的数据量超过预设阈值时; 将每个数据库节点的数据拆分成m份,则数据库节点的数据共有m*n份;将待执行的作业相对应的拆分成m*n个任务,每个所述任务对应地执行一个所述数据库节点相关的数据,同时记录每个任务的执行情况;
在作业执行过程中,若其中一个任务因数据异常而执行失败时,则根据执行情况查找该失败的任务,并通过该失败的任务所对应的数据库节点查找异常数据并进行更正处理;在更正该异常数据后,跳过已经执行成功的任务,直接从所述因数据异常而执行失败的任务继续执行该作业,直至执行完成所有m*n个任务。
进一步的,若所述任务为单任务时,所述任务通过单线程进行处理;开启SpringBatch的断点续跑控制,在该单任务失败时记录异常发生点,重新执行该单任务时从该异常发生点开始执行。
进一步的,关闭Spring Batch的断点续跑控制,在数据库节点的数据结构上增加标志字段,根据该标志字段读取数据并进行处理以更新标志字段,在任务失败时对异常记录进行处理,筛选标志字段未更新的数据并开始重新执行。
进一步的,通过业务逻辑控制所述任务,在所述任务失败后,重新执行该任务并筛选出需要处理的全量数据。
进一步的,每个待执行所拆分出的各个任务的执行完全独立。
进一步的,若所述因数据异常而执行失败的任务在重新执行时仍然失败,则针对该失败的任务再次执行所述查找异常数据并更正处理的步骤,并再次重新执行所述因数据异常而执行失败的任务。
本发明的另一个方面,提供一种批处理任务中的异常处理系统,该异常处理系统包括第一划分模块、第一拆分模块和第一执行模块;其中,
所述第一划分模块用于按照预设规则将待处理的数据划分为n个数据库,其中每个数据库对应设置一个数据库节点;
所述第一拆分模块用于执行以下操作:将待执行的作业拆分为n个任务,每个所述任务对应地执行一个所述数据库节点相关的数据,同时批处理调度系统记录每个任务的执行情况;
所述第一执行模块用于执行以下操作:在作业执行过程中,若其中一个任务因数据异常而执行失败时,则根据执行情况查找该失败的任务,并通过该失败的任务所对应的数据库节点查找异常数据并进行更正处理;在更正该异常数据后,跳过已经执行成功的任务,直接从所述因数据异常而执行失败的任务继续执行该作业,直至执行完成所有n个任务。
进一步的,该系统还包括第二拆分模块和第二执行模块;其中,
所述第二拆分模块用于执行以下操作:当数据节点的数据量超过预设阈值时; 将每个数据库节点的数据拆分成m份,则数据库节点的数据共有m*n份,将待执行的作业相对应的拆分成m*n个任务,每个所述任务对应地执行一个所述数据库节点相关的数据,同时批处理调度系统记录每个任务的执行情况;
所述第二执行模块用于执行以下操作:在作业执行过程中,若其中一个任务因数据异常而执行失败时,则根据执行情况查找该失败的任务,并通过该失败的任务所对应的数据库节点查找异常数据并进行更正处理;在更正该异常数据后,跳过已经执行成功的任务,直接从所述因数据异常而执行失败的任务继续执行该作业,直至执行完成所有m*n个任务。
本发明的再一个方面,一种电子设备,包括:处理器和存储装置,所述存储装置上存储有计算机程序,所述处理器执行所述存储装置上的计算机程序时实现上述任一项所述的异常处理方法。
本发明的又一个方面,一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现上述任一项所述的异常处理方法。
本发明的一种批处理任务中的异常处理方法和系统及电子设备,通过查询多个任务节点的异常数据,当在处理数据库节点的数据时,若遇到任务执行失败时,可以保证已执行的任务不被重复执行,只执行失败的任务节点在某个范围内的数据,从而在任务重跑时不会遗漏或者重复处理数据,以减少重跑所需要的时间耗时。
附图说明
图1是现有技术中的Spring Batch提供的批量任务处理的流程示意图;
图2是本发明实施例提供的在任务调度计划中任务失败的异常处理流程示意图;
图3是本发明实施例提供的一种批处理任务中的异常处理方法的流程示意图;
图4是本发明的实施例提供的基于数据多节点分布后的多任务节点的异常处理示意图;
图5是本发明的另一实施例提供的批处理任务中的异常处理方法的流程示意图;
图6是本发明实施例提供的一种批处理任务中的数据分库的结构示意图;
图7是本发明另一实施例提供的一种批处理任务中的异常处理系统的结构示意图;
图8是本发明实施例提供的一种电子设备的结构示意图。
具体实施方式
下面结合附图所示的各实施方式对本发明进行详细说明,但应当说明的是,这些实施方式并非对本发明的限制,本领域普通技术人员根据这些实施方式所作的功能、方法、或者结构上的等效变换或替代,均属于本发明的保护范围之内。
本发明的下述的实施例主要是基于金融业务领域的批处理任务的业务场景,下面将简要描述该批处理任务常见的几种类型。
定时任务:日间需要循环执行的作业,无需人工干预,类似监听作业,如金融业务场景的准实时入账处理。
日间任务:日间可以独立处理的相关作业,按照业务场景,可以执行一次或者多次,如报表任务、客户卡片账务信息的维护任务。
日终任务:基于业务日期相关的一组依赖关系的任务,如日终业务日期切换、清算文件入账、利息累积、延滞处理和账单处理等任务。
现有技术中的Spring Batch提供了批量任务处理的方法,可以应用于金融业务的批量处理业务,但是在实际业务场景中,很难将所有的业务在一个任务中处理完成,并且基于大数据量,单线程记录的断点方式也无法满足业务处理耗时的要求。
其中,上述Spring Batch是一个轻量级的,完全面向Spring的批处理框架,可以应用于企业级大量的数据处理系统。Spring Batch可以提供大量的,可重复的数据处理功能,包括日志记录/跟踪,事务管理,作业处理统计工作重新启动、跳过,和资源管理等重要功能。
尽管Spring Batch也提供了断点续跑的功能,即通过ItemReader并设saveState=true来实现,但是在该模式启用的情况下,要求必须为单线程处理任务,一旦启用多线程,断点记录就会发生错误,重跑时会遗漏或者重复处理数据。
其中,ItemReader是一个提供数据的接口,在这个接口中只有一个方法read(),它读取一个数据并且移动到下一个数据上去,在读取结束时必须返回一个null,否则表明数据没有读取完毕。
实施例一、批处理任务中的异常处理方法
为了保证业务功能的灵活性,在实际场景中可以使用一个作业实现一个业务功能,一个作业计划实现一系列完整的业务功能的方式,参见图1,作业1-作业6完成了一个整体的业务功能,并且各作业之间存在依赖关系,任务调度系统启动作业计划执行时,每个作业的执行情况会被记录成一条执行记录,包括作业的执行结果是否是成功。但是这种批量任务处理的方法对于大数据量或者处理时间有要求的场景,提供的断点续跑功能便无法适用。
对于多个依赖任务中经常出现的异常,本实施例通过分批执行作业的各个任务,并记录每个任务的执行情况,根据执行情况找到失败的任务所对应的数据库节点找到异常数据进行更正处理;在更正该异常数据后,跳过已经执行成功的任务,直接从所述因数据异常而执行失败的任务继续执行该作业,直至执行完成所有n个任务,以实现任务的异常处理。
图2是本发明实施例提供的在任务调度计划中任务失败的异常处理流程示意图;参见图2,该异常处理流程包括:解析文件->业务逻辑处理->生成扣款文件->短信处理这几个步骤。
参见图2,在第一次执行任务计划时,作业4-第三方公司扣款因数据问题处理发生异常,则记录作业1、作业2、作业3执行结果为成功,作业4执行结果为失败;
当解决异常数据后,重新执行该任务计划时,则判断作业1、2、3的执行结果为成功,则跳过;由于作业4执行失败,重新开始执行该任务计划,执行完成后依次执行后续的作业5、作业6。
通过将作业拆分成多个小的执行单元任务,保证了整体业务场景的完整性,例如,在遇到作业4异常时,不需要将所有的业务逻辑重新处理,如扣款处理场景,作业1-文件解析、作业2-本行扣款处理及作业3-本行扣款文件生成,只需继续处理第三方公司逻辑(即作业4和5)及后续依赖的短信处理(即作业6),从而完成了整个业务场景的处理,又大大节省了扣款业务处理出错后系统重跑所需要的时间耗时。
这里的任务调度计划指一系列相互依赖的任务组成的一个计划,由任务调度系统来执行这个计划,从而有序地执行计划中的每个任务。
当数据、环境等引起的批处理任务异常后,本实施例提供一种多节点批处理任务的作业执行方法,该作业执行方法能有效地保证业务处理的连续、数据处理的完整性;参见图3,图3是本发明实施例提供的一种批处理任务中的异常处理方法的流程示意图;该方法包括以下步骤:
S100:按照预设规则将数据划分为n个数据库,其中每个数据库对应设置一个数据库节点;
具体的,可以按照预设规则将待处理的数据划分为n个数据库、并按数据库的区域将每个数据库对应设置一个数据库节点以完成落库。
S200:将待执行的作业拆分为n个任务,每个所述任务对应地执行一个所述数据库节点相关的数据,同时记录每个任务的执行情况;具体的,每个任务固定地对应查询一个数据节点的数据并进行处理,实际上是n个任务并发处理所有数据库节点的数据,同时任务调度系统记录每个任务的执行情况,如其中一个任务执行失败时,则任务调度系统重新触发该任务节点进行重跑;
S300:在作业执行过程中,若其中一个任务因数据异常而执行失败时,则根据执行情况查找该失败的任务,并通过该失败的任务所对应的数据库节点查找异常数据并进行更正处理;在更正该异常数据后,跳过已经执行成功的任务,直接从所述因数据异常而执行失败的任务继续执行该作业,直至执行完成所有n个任务,以确保所有任务均已执行完成。
通过上述多节点批处理任务的作业执行方法,当在处理数据库节点的数据时,若遇到任务因数据异常执行失败时,可以保证已执行的任务不被重复执行,只执行失败的任务节点或任务节点在某个范围内的数据,从而在任务重跑时不会遗漏或者重复处理待处理的数据,以减少重跑所需要的时间耗时。
图4是本发明实施例提供的基于数据多节点分布后的多任务节点的异常处理示意图;参见图4,作业4处理表1的数据,按照数据库节点定义任务,每个待执行的作业处理一个数据库节点的任务,各个任务的执行完全独立,当有任务节点因数据异常而执行失败时,在更正该异常数据后,任务调度系统根据记录只重跑失败的任务;
作业5处理表2的数据,由于业务逻辑复杂度高,一个节点的数据可拆分为两个任务处理(例如g1数据可由作业5_1和5_2来处理),当某个范围内的数据发生异常时,处理异常数据后,任务调度系统根据记录只重新调起失败的节点记录,例如任务节点5_n2在重试后仍然失败,则针对该任务节点反复执行,这种反复执行不会影响其他任务节点的执行,对于异常任务节点的处理也不需要等到其他任务节点执行完成再处理失败的数据。
这种将作业拆分成多个任务的方法,在遇到任务异常时既保证了数据处理的独立性,又能及时地发现异常,从而解决了任务异常后重跑任务时不会遗漏或者重复处理数据,大大缩短了发生异常时的处理时耗。
优选的,对于单任务节点处理,本发明的批处理任务中的异常处理方法是基于Spring Batch实现的。
在一个实施例中,所述单任务是通过单线程进行处理的,即开启Spring Batch的断点续跑控制,在该单任务失败时记录异常发生点,重新执行该单任务时从该异常发生点开始执行。
在另一个实施例中,所述任务利用标志字段控制多线程处理的,即关闭SpringBatch的断点续跑控制,在数据库节点的数据结构上增加标志字段,根据该标志字段读取数据并进行处理,当处理完成后更新标志字段,在遇到数据或者环境等问题发生异常失败后,则在对异常记录进行处理,筛选标志字段未更新的数据并开始重新执行。
在又一个实施例中,通过业务逻辑控制所述任务,即关闭Spring Batch的断点续跑控制,任务失败后重新启动整个任务,筛选全量数据(即指发生异常的任务需要处理的全量数据,一般是单数据库节点上需要处理的某个表的全量数据)并进行处理,通过业务层控制跳过已处理过的数据的逻辑处理,保证了数据库节点数据处理的幂等性,保证任务重新执行的业务结果的一致性。
其中,上述幂等性是指一次和多次请求某一个资源对于资源本身应该具有同样的结果(网络超时等问题除外)。也就是说,其任意多次执行对资源本身所产生的影响均与一次执行的影响相同。
在另一个实施例中,图5是本发明的另一实施例提供的批处理任务中的异常处理方法的流程示意图;参见图5,该方法包括以下步骤:
S100´: 按照预设规则将待处理的数据划分为n个数据库,其中每个数据库对应设置一个数据库节点;
S200´:当数据节点的数据量超过预设阈值时; 将每个数据库节点的数据拆分成m份,则数据库节点的数据共有m*n份,将待执行的作业相对应的拆分成m*n个任务,每个所述任务对应地执行一个所述数据库节点相关的数据,同时记录每个任务的执行情况;
S300´: 在作业执行过程中,若其中一个任务因数据异常而执行失败时,则根据执行情况查找该失败的任务,并通过该失败的任务所对应的数据库节点查找异常数据并进行更正处理;在更正该异常数据后,跳过已经执行成功的任务,直接从所述因数据异常而执行失败的任务继续执行该作业,直至执行完成所有m*n个任务。
实施例二、批处理任务中的异常处理系统
下面介绍本发明一个实施例提供的一种处理任务中的异常处理系统,参见图6,本实施例中的异常处理系统包括第一划分模块、第一拆分模块和第一执行模块;其中,
所述第一划分模块用于按照预设规则将待处理的数据划分为n个数据库,其中每个数据库对应设置一个数据库节点;
所述第一拆分模块用于执行以下操作:将待执行的作业拆分为n个任务,每个所述任务对应地执行一个所述数据库节点相关的数据,同时批处理调度系统记录每个任务的执行情况;
所述第一执行模块用于执行以下操作:在作业执行过程中,若其中一个任务因数据异常而执行失败时,则根据执行情况查找该失败的任务,并通过该失败的任务所对应的数据库节点查找异常数据并进行更正处理;在更正该异常数据后,跳过已经执行成功的任务,直接从所述因数据异常而执行失败的任务继续执行该作业,直至执行完成所有n个任务。本实施例与上述所述的多节点批处理异常任务的方法的工作过程基本一致,在此不再赘述。
下面介绍本发明另一实施例提供的一种批处理任务中的异常处理系统,参见图7,本实施例中的异常处理系统包括第二划分模块、第二拆分模块和第二执行模块;其中,
所述第二划分模块用于按照预设规则将待处理的数据划分为n个数据库,其中每个数据库对应设置一个数据库节点;
所述第二拆分模块用于执行以下操作:当数据节点的数据量超过预设阈值时; 将每个数据库节点的数据拆分成m份,则数据库节点的数据共有m*n份,将待执行的作业相对应的拆分成m*n个任务,每个所述任务对应地执行一个所述数据库节点相关的数据,同时批处理调度系统记录每个任务的执行情况;
所述第二执行模块用于执行以下操作:在作业执行过程中,若其中一个任务因数据异常而执行失败时,则根据执行情况查找该失败的任务,并通过该失败的任务所对应的数据库节点查找异常数据并进行更正处理;在更正该异常数据后,跳过已经执行成功的任务,直接从所述因数据异常而执行失败的任务继续执行该作业,直至执行完成所有m*n个任务。
优选的,每个待执行的作业所拆分出的各个任务的执行完全独立。
优选的,若所述因数据异常而执行失败的任务在重新执行时仍然失败,则针对该失败的任务再次执行所述查找数据异常和更正的步骤并再次重新执行。
实施例三、电子设备
本发明实施例提供一种电子设备,如图8所示,该电子设备至少包括:处理器和存储装置;存储装置上存储有计算机程序,处理器在执行存储装置上的计算机程序时实现本发明任意实施例提供的方法。
本发明实施例中的电子设备可以包括但不限于诸如移动电话、笔记本电脑、数字广播接收器、PDA(个人数字助理)、PAD(平板电脑)、PMP(便携式多媒体播放器)、车载终端(例如车载导航终端)等等的移动终端以及诸如数字TV、台式计算机等等的固定终端。图7示出的电子设备仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
实施例四、计算机可读存储介质
本发明实施例提供一种计算机可读存储介质,存储有计算机程序,该程序被处理器执行时实现本发明任意实施例提供的方法。
需要说明的是,本公开所述的计算机可读介质可以是算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、RF(射频)等等,或者上述的任意合适的组合。
上述计算机可读介质可以是上述电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。
本发明的有益效果:
1.本发明利用批处理任务中的异常处理方法,保证了业务处理的延续性和完整性;
2.本发明通过利用任务调度计划的异常处理,可以有效地保证业务处理的延续性,支持业务链路复杂度的扩展;
3.将任务划分为多个任务节点,也保证了数据的隔离性;
4.在任务发生异常时,从失败的任务接点开始执行后续任务并重新执行处理失败的任务节点所对应的数据,只影响当前范围内的数据,解决异常后可以重跑异常范围的数据,有效地减少了解决异常后任务重跑的执行时间;同时也减少了人工干预。
需要说明的是本发明的技术方案尤其适用于对数据的一致性和完整性要求极高的金融业务领域。
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化囊括在本发明内。

Claims (10)

1.一种批处理任务中的异常处理方法,其特征在于,该方法包括以下步骤:
按照预设规则将待处理的数据划分为n个数据库,其中每个数据库对应设置一个数据库节点;
将待执行的作业拆分为n个任务,每个所述任务对应地执行一个所述数据库节点相关的数据,同时记录每个任务的执行情况;
在作业执行过程中,若其中一个任务因数据异常而执行失败时,则根据执行情况查找该失败的任务,并通过该失败的任务所对应的数据库节点查找异常数据并进行更正处理;在更正该异常数据后,跳过已经执行成功的任务,直接从所述因数据异常而执行失败的任务继续执行该作业,直至执行完成所有n个任务。
2.根据权利要求1所述的异常处理方法,其特征在于,在按照预设规则将待处理的数据划分为n个数据库,其中每个数据库对应设置一个数据库节点后;该方法还包括以下步骤:
当数据库节点的数据量超过预设阈值时; 将每个数据库节点的数据拆分成m份,则数据库节点的数据共有m*n份;将待执行的作业相对应的拆分成m*n个任务,每个所述任务对应地执行一个所述数据库节点相关的数据,同时记录每个任务的执行情况;
在作业执行过程中,若其中一个任务因数据异常而执行失败时,则根据执行情况查找该失败的任务,并通过该失败的任务所对应的数据库节点查找异常数据并进行更正处理;在更正该异常数据后,跳过已经执行成功的任务,直接从所述因数据异常而执行失败的任务继续执行该作业,直至执行完成所有m*n个任务。
3.根据权利要求2所述的异常处理方法,其特征在于,若所述任务为单任务时,所述任务通过单线程进行处理,开启Spring Batch的断点续跑控制,在该单任务失败时记录异常发生点,重新执行该单任务时从该异常发生点开始执行。
4.根据权利要求2所述的异常处理方法,其特征在于,关闭Spring Batch的断点续跑控制,在数据库节点的数据结构上增加标志字段,根据该标志字段读取数据并进行处理以更新标志字段,在任务失败时对异常记录进行处理,筛选标志字段未更新的数据并开始重新执行。
5.根据权利要求2所述的异常处理方法,其特征在于,通过业务逻辑控制所述任务,在所述任务失败后,重新执行该任务并筛选出需要处理的全量数据。
6.根据权利要求1所述的异常处理方法,其特征在于,每个待执行的作业所拆分出的各个任务的执行完全独立。
7.根据权利要求1-6任一项所述的异常处理方法,其特征在于,若所述因数据异常而执行失败的任务在重新执行时仍然失败,则针对该失败的任务再次执行所述查找异常数据并进行更正处理的步骤,并再次重新执行所述因数据异常而执行失败的任务。
8.一种批处理任务中的异常处理系统,其特征在于,该异常处理系统包括第一划分模块、第一拆分模块和第一执行模块;其中,
所述第一划分模块用于按照预设规则将待处理的数据划分为n个数据库,其中每个数据库对应设置一个数据库节点;
所述第一拆分模块用于执行以下操作:将待执行的作业拆分为n个任务,每个所述任务对应地执行一个所述数据库节点相关的数据,同时批处理调度系统记录每个任务的执行情况;
所述第一执行模块用于执行以下操作:在作业执行过程中,若其中一个任务因数据异常而执行失败时,则根据执行情况查找该失败的任务,并通过该失败的任务所对应的数据库节点查找异常数据并进行更正处理;在更正该异常数据后,跳过已经执行成功的任务,直接从所述因数据异常而执行失败的任务继续执行该作业,直至执行完成所有n个任务。
9.根据权利要求8所述的异常处理系统,其特征在于,该系统还包括第二拆分模块和第二执行模块;其中,
所述第二拆分模块用于执行以下操作:当数据节点的数据量超过预设阈值时; 将每个数据库节点的数据拆分成m份,则数据库节点的数据共有m*n份,将待执行的作业相对应的拆分成m*n个任务,每个所述任务对应地执行一个所述数据库节点相关的数据,同时批处理调度系统记录每个任务的执行情况;
所述第二执行模块用于执行以下操作:在作业执行过程中,若其中一个任务因数据异常而执行失败时,则根据执行情况查找该失败的任务,并通过该失败的任务所对应的数据库节点查找异常数据并进行更正处理;在更正该异常数据后,跳过已经执行成功的任务,直接从所述因数据异常而执行失败的任务继续执行该作业,直至执行完成所有m*n个任务。
10.一种电子设备,其特征在于,包括:处理器和存储装置,所述存储装置上存储有计算机程序,所述处理器执行所述存储装置上的计算机程序时实现权利要求1至7任何一项所述的异常处理方法。
CN201911313271.1A 2019-12-19 2019-12-19 批处理任务中的异常处理方法、系统及电子设备 Pending CN110727539A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911313271.1A CN110727539A (zh) 2019-12-19 2019-12-19 批处理任务中的异常处理方法、系统及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911313271.1A CN110727539A (zh) 2019-12-19 2019-12-19 批处理任务中的异常处理方法、系统及电子设备

Publications (1)

Publication Number Publication Date
CN110727539A true CN110727539A (zh) 2020-01-24

Family

ID=69226041

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911313271.1A Pending CN110727539A (zh) 2019-12-19 2019-12-19 批处理任务中的异常处理方法、系统及电子设备

Country Status (1)

Country Link
CN (1) CN110727539A (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111400011A (zh) * 2020-03-19 2020-07-10 中国建设银行股份有限公司 一种实时任务调度方法、系统、设备及可读存储介质
CN111581243A (zh) * 2020-04-30 2020-08-25 北京江融信科技有限公司 基于批次数据库的批处理任务执行方法及系统
CN112231403A (zh) * 2020-10-15 2021-01-15 北京人大金仓信息技术股份有限公司 数据同步的一致性校验方法、装置、设备和存储介质
CN112685208A (zh) * 2020-12-15 2021-04-20 建信金融科技有限责任公司 批量处理方法、装置、设备及存储介质
CN113010278A (zh) * 2021-02-19 2021-06-22 建信金融科技有限责任公司 一种用于财险核心系统的批处理方法及系统
CN113657987A (zh) * 2020-05-12 2021-11-16 马上消费金融股份有限公司 批量处理数据的方法及装置
CN114579194A (zh) * 2022-03-08 2022-06-03 杭州每刻科技有限公司 一种基于Spring远程调用的异常处理方法和系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104317960A (zh) * 2014-11-14 2015-01-28 中国建设银行股份有限公司 一种批处理作业的处理方法和装置
CN104407847A (zh) * 2014-10-29 2015-03-11 中国建设银行股份有限公司 一种批处理的方法及装置
CN105589756A (zh) * 2014-12-03 2016-05-18 中国银联股份有限公司 批处理集群系统以及方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104407847A (zh) * 2014-10-29 2015-03-11 中国建设银行股份有限公司 一种批处理的方法及装置
CN104317960A (zh) * 2014-11-14 2015-01-28 中国建设银行股份有限公司 一种批处理作业的处理方法和装置
CN105589756A (zh) * 2014-12-03 2016-05-18 中国银联股份有限公司 批处理集群系统以及方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
匿名: "spring batch批量处理框架", 《HTTPS://WWW.JIANSHU.COM/P/F0680F8AB48B》 *

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111400011A (zh) * 2020-03-19 2020-07-10 中国建设银行股份有限公司 一种实时任务调度方法、系统、设备及可读存储介质
CN111400011B (zh) * 2020-03-19 2023-10-20 中国建设银行股份有限公司 一种实时任务调度方法、系统、设备及可读存储介质
CN111581243A (zh) * 2020-04-30 2020-08-25 北京江融信科技有限公司 基于批次数据库的批处理任务执行方法及系统
CN113657987A (zh) * 2020-05-12 2021-11-16 马上消费金融股份有限公司 批量处理数据的方法及装置
CN112231403A (zh) * 2020-10-15 2021-01-15 北京人大金仓信息技术股份有限公司 数据同步的一致性校验方法、装置、设备和存储介质
CN112231403B (zh) * 2020-10-15 2024-01-30 北京人大金仓信息技术股份有限公司 数据同步的一致性校验方法、装置、设备和存储介质
CN112685208A (zh) * 2020-12-15 2021-04-20 建信金融科技有限责任公司 批量处理方法、装置、设备及存储介质
CN112685208B (zh) * 2020-12-15 2023-06-06 建信金融科技有限责任公司 批量处理方法、装置、设备及存储介质
CN113010278A (zh) * 2021-02-19 2021-06-22 建信金融科技有限责任公司 一种用于财险核心系统的批处理方法及系统
CN113010278B (zh) * 2021-02-19 2023-03-28 建信金融科技有限责任公司 一种用于财险核心系统的批处理方法及系统
CN114579194A (zh) * 2022-03-08 2022-06-03 杭州每刻科技有限公司 一种基于Spring远程调用的异常处理方法和系统
CN114579194B (zh) * 2022-03-08 2024-04-05 杭州每刻科技有限公司 一种基于Spring远程调用的异常处理方法和系统

Similar Documents

Publication Publication Date Title
CN110727539A (zh) 批处理任务中的异常处理方法、系统及电子设备
US8132043B2 (en) Multistage system recovery framework
US11210185B2 (en) Method and system for data recovery in a data system
US7779298B2 (en) Distributed job manager recovery
EP2474919A1 (en) System and method for data replication between heterogeneous databases
CN110941502B (zh) 消息处理方法、装置、存储介质及设备
CN111400011B (zh) 一种实时任务调度方法、系统、设备及可读存储介质
US20120331333A1 (en) Stream Data Processing Failure Recovery Method and Device
WO2019109854A1 (zh) 分布式数据库数据处理方法、装置、存储介质及电子装置
CN111881116A (zh) 数据迁移方法、数据迁移系统、计算机系统和存储介质
US9535931B2 (en) Data seeding optimization for database replication
CN110555150B (zh) 一种数据监控方法、装置、设备和存储介质
CN113157710B (zh) 区块链数据并行写入方法、装置、计算机设备及存储介质
US20220129483A1 (en) Data processing method and device, computing device and medium
WO2020253045A1 (zh) 配置化的数据转发异常补处理方法、装置及可读存储介质
US9612921B2 (en) Method and system for load balancing a distributed database providing object-level management and recovery
US8521682B2 (en) Transfer of data from transactional data sources to partitioned databases in restartable environments
CN113157491A (zh) 数据备份方法、装置、通信设备及存储介质
US10261718B1 (en) Adaptively controlling data copy operations that copy data in an electronic environment
CN106971293A (zh) 一种基于activiti的业务事件与流程分离方法及系统
US20190268180A1 (en) Method and system for high availability topology for master-slave data systems with low write traffic
CN116166390A (zh) 一种业务处理方法、装置、电子设备和存储介质
CN115437766A (zh) 一种任务处理方法和装置
CN111638920B (zh) 计算机程序同步任务处理方法、装置、电子设备和介质
CN107464088B (zh) 基于消息队列的业务处理系统及方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20200124