掌桥专利:专业的专利平台
掌桥专利
首页

批量处理方法、装置、设备及存储介质

文献发布时间:2023-06-19 10:41:48


批量处理方法、装置、设备及存储介质

技术领域

本申请实施例涉及数据处理技术领域,尤其涉及一种批量处理方法、装置、设备及存储介质。

背景技术

在一些数据处理量较大的业务场景中,往往需要在一个固定时间内对数量庞大的业务数据进行批量处理,例如,财险系统通常在夜间通过调用一组程序来定时对业务数据进行批量处理。

然而,现有的批量处理方法中缺乏对批量处理的异常容错机制,单个子批量任务执行异常,可能导致当前整个批次的批量处理任务无法进行。因此,亟待对现有批量处理方法中的异常容错机制进行完善。

发明内容

本申请提供一种批量处理方法、装置、设备及存储介质,以完善批量处理过程中的异常容错机制。

第一方面,本申请实施例提供了一种批量处理方法,该方法包括:

响应于批量处理请求,对业务数据执行至少一个批量处理任务;

若至少一个所述批量处理任务执行异常,则将执行异常的批量处理任务作为目标任务;

根据所述目标任务关联的业务数据,对所述目标任务进行错误补偿,并继续执行对至少一个所述批量处理任务的处理操作。

第二方面,本申请实施例还提供了一种批量处理装置,该装置包括:

批量处理模块,用于响应于批量处理请求,对业务数据执行至少一个批量处理任务;

目标任务确定模块,用于若至少一个所述批量处理任务执行异常,则将执行异常的批量处理任务作为目标任务;

错误补偿模块,用于根据所述目标任务关联的业务数据,对所述目标任务进行错误补偿,并继续执行对至少一个所述批量处理任务的处理操作。

第三方面,本申请实施例还提供了一种批量处理设备,包括:

一个或多个处理器;

存储装置,用于存储一个或多个程序,

当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如第一方面实施例所提供的任意一种批量处理方法。

第四方面,本申请实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如第一方面实施例所提供的任意一种批量处理方法。

本申请实施例通过将执行异常的批量处理任务作为目标任务,根据目标任务关联的业务数据,对目标任务进行错误补偿,并继续执行对至少一个批量处理任务的处理操作,实现了在批量处理任务执行异常的情况下,准确定位执行异常的目标任务,并根据目标任务关联的业务数据,对执行异常的批量任务进行错误补偿,使得后续的批量处理任务可以继续往下执行,完善了批量处理过程中的异常容错机制,保证了批量处理运行能满足业务需求、性能以及稳定性的要求。

附图说明

图1是本申请实施例一提供的一种批量处理方法的流程图;

图2是本申请实施例二提供的一种批量处理方法的流程图;

图3是本申请实施例三提供的一种批量处理方法的流程图;

图4是本申请实施例四提供的一种批量处理方法的流程图;

图5是本申请实施例四提供的一种日终批量的流程图;

图6是本申请实施例四提供的一种断点重提方法的流程图;

图7是本申请实施例四提供的一种跳过错误方法的流程图;

图8是本申请实施例四提供的一种回退方法的流程图;

图9是本申请实施例四提供的一种重跑方法的流程图;

图10是本申请实施例四提供的一种更新断点记录数据的流程图;

图11是本申请实施例五提供的一种批量处理装置的示意图;

图12是本申请实施例六提供的一种电子设备的示意图。

具体实施方式

下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本申请,而非对本申请的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本申请相关的部分而非全部结构。

实施例一

图1为本申请实施例一提供的一种批量处理方法的流程图。本申请实施例可适用于在执行批量处理任务过程中,对执行异常的批量处理任务进行错误补偿的情况。该方法可以由一种批量处理装置来执行,该装置可以由软件和/或硬件的方式实现,并具体配置于电子设备中,该电子设备可以是移动终端或固定终端。

参见图1,本申请实施例提供的批量处理方法包括:

S110、响应于批量处理请求,对业务数据执行至少一个批量处理任务。

其中,批量处理请求是指针对大数据量的业务数据,基于对业务数据发起的批量处理请求,实现对业务数据的高效处理。

业务数据是指待进行批量处理的业务数据,业务数据的具体形式与所要进行的批量处理任务相关。例如,业务数据可以是财险公司或金融机构等在夜间进行批量处理时的业务数据。

可以理解的是,通过对业务数据进行批量处理,可以大幅度提高对业务数据的处理效率。

可以理解的是,通过对业务数据进行批量处理,可以大幅度提高对业务数据的处理效率。

可选地,所述响应于批量处理请求,对业务数据执行至少一个批量处理任务,包括下述至少一种:响应于日终批量处理开始请求,对日间批量处理任务进行批量中止;响应于联机日期切换请求,对所述业务数据中的资金流信息进行日终业务批量处理;响应于批量日期切换请求,对所述业务数据中的总账信息进行日初业务批量处理。

其中,日终批量处理开始请求是指日终批量处理开始的时点,为了避免与日间的联机服务争抢系统资源,如处理器和数据库连接等,将大数据量的、周期性发生的以及结果无需立即向客户实时反馈的批量处理任务安排在夜间进行处理,而这一期间进行的批量处理统称为日终批处理。

批量中止是指针对日间的实时批量或定时批量,为了使得日终批量处理任务可以顺利开展,在对日终业务进行批量处理之前,会先将日间的实时批量或定时批量任务进行中止,而上述这一过程又可称之为日间批兜底处理。

联机日期切换请求是指营业结束之后,应用系统组件切联机日期,开始对业务数据中的资金流信息进行日终业务批量处理的时点。其中,资金流信息是指与日终业务批量处理相关的数据信息,以财险系统为例,资金流信息包括保单余额、万能结算和续期催收等信息。

批量日期切换请求是指在结束对业务数据中的资金流信息进行日终业务批量之后,开始对业务数据中的总账信息进行日初业务批量处理的时点。其中,总账信息是指与日初业务批量处理相关的数据信息,以财险系统为例,总账信息包括财务退票、业务明细和财险通知书等信息。

其中,在日初业务批量处理阶段(以财险系统为例),又可分为记账预处理阶段、数据准备与传输阶段以及数据清理阶段三个阶段。在记账预处理阶段,主要进行财务退票处理、业务明细类凭证生成以及推送等;在数据准备与传输阶段,主要进行账单打印、各类业务统计、回访业务数据同步和产品数据同步等;在数据清理阶段,主要进行数据的归档以及数据的清理等。

可以理解的是,当需要进行批量日切时,根据日终批量处理开始请求、联机日期切换请求和批量日期切换请求,将日终批量处理任务划分为三个时段,以实现在不同的时段执行不同的任务,从而可以保证批量处理有条不紊地高效运行。

可选地,根据批量处理的业务数据内容(如签单批量处理、转账批量处理和分红批量处理等),对批量处理时段进行划分,并且针对不同业务数据涉及的业务量以及处理难度,划分不同的批量处理时段,如0:00~1:10执行签单批处理,1:10~1:50执行转账批处理等。

可以理解的是,通过对批量处理任务进行合理的时段划分,以及安排合理的批量处理时间以及时间间隔,避免了业务数据量增长导致批量处理时段过于集中,使得服务器压力过大的问题,有效保证了批量处理可以有条不紊地高效运行,从而降低对日终批量处理任务进行作业维护的复杂程度。

本实施例中,在响应于日终批量处理开始请求之前,针对日间的定时批量处理任务或实时批量处理任务,也可以对日间的其他批量处理请求进行响应,并对业务数据执行至少一个批量处理任务。

S120、若至少一个批量处理任务执行异常,则将执行异常的批量处理任务作为目标任务。

其中,执行异常是指相较于执行失败而言,不会引起批量处理任务执行中止退出,或执行不下去的情况。在批量处理任务执行的过程中,若执行异常,基于批量处理开发人员预先考虑的各种异常情况下,对批量任务进行处理的程序设计逻辑,通过对错误位置和错误内容等进行判断和识别,同时进一步将错误信息进行登记,使得批量处理任务可以继续往下执行。

例如,针对财险系统,在某一客户领取保单红利的场景中,财险系统与银行支付系统对接,根据客户提供的收款账户进行保单红利转账,然而在银行进行转账时,发现某一客户的银行卡号与姓名不符,那么这笔账款将无法支付成功。为了不影响后续的批量转账业务,此时,可选择对上述转账失败的任务进行错误信息记录,并继续执行后面的批量转账业务。待后续业务平台通知客户告知转账支付失败的原因后,由客户在收到提示信息之后对收款账号进行更正,那么之后再对上述客户进行保单红利转账,将会转账支付成功。

可以理解的是,将执行异常的批量处理任务作为目标任务,能针对目标任务中执行异常的节点位置,选取相应的错误补偿方法进行错误补偿。

S130、根据目标任务关联的业务数据,对目标任务进行错误补偿,并继续执行对至少一个批量处理任务的处理操作。

其中,目标任务关联的业务数据是指,执行异常的批量处理任务所属的具体某一业务数据,例如,当财险系统进行批量任务处理时,该业务数据可以是签单业务数据、转账业务数据或分红业务数据等。

错误补偿是指在批量处理的过程中,针对执行异常的批量处理任务,根据业务数据的特性和特点,选取合适的错误补偿方法,对当前的批量处理过程进行异常修复,使得当前正在执行的批量任务还可以继续往下执行。

可以理解的是,不同的目标任务,由于目标任务本身其所关联的业务数据不同,在进行批量处理的时候,可根据目标任务关联的业务数据,选取合适的错误补偿方法,对目标任务进行错误补偿。

可选地,所述目标错误补偿方法包括断点重提方法、回退方法、重跑方法或跳过错误方法。

其中,断点重提方法是指根据目标任务中执行异常的位置,重新从异常的位置处继续往下执行批量处理的方法;回退方法是指基于目标任务中执行异常的位置所在的子批量任务,回退到子批量任务所在的初始位置处,并继续往下执行批量处理的方法;重跑方法是指重新对整个目标任务进行批量处理的方法;跳过错误方法是指基于目标任务中执行异常的位置,选择跳过执行异常的当前位置,并从当前位置的下一个位置处继续往下执行批量处理的方法。

可以理解的是,在批量处理执行异常的情况下,若是对批量处理时效性要求高的批量处理任务,可选择跳过错误方法;若是对批量处理数据一致性要求高的批量处理任务,可选择重跑方法;若是对批量处理任务的时效性要求不高,但对数据一致性有一定要求的批量处理任务,可选择回退方法;若是对批量处理任务的数据一致性要求不高,但对时效性有一定要求的批量处理任务,可选择断点重提方法,以保证对批量处理任务的继续执行,从而不退出当前的批量处理任务。

通常,批量任务处理完之后,都会将其提交到数据库中进行保存。为了避免对处理完的批量任务进行过于频繁地提交,增加系统的运行处理时间以及对系统资源的消耗,考虑设置合适的批量任务同步机制,实现将已成功处理的批量任务以一定的数据笔数,或以一定的时间间隔进行提交。

可选地,将已成功处理且未存储处理结果的业务数据作为候选业务数据;若所述候选业务数据的数据量大于设定数据量阈值,则存储所述候选业务数据的结果数据;和/或,若所述候选业务数据的处理时长大于设定时长阈值,则存储所述候选业务数据的结果数据。

其中,候选业务数据是指已成功进行批量处理完结的,待进行存储处理结果的业务数据。

设定数据量阈值是指处理完的批量任务的数据笔数,设定数据量阈值可根据实际处理的批量任务内容进行预先设定,不同的批量任务可设置不同的设定数据量阈值,本申请实施例对此不做限定。

设定时长阈值是指某一固定时间间隔,例如一分钟或三分钟等,设定时长阈值可根据实际处理的批量任务内容进行预先设定,不同的批量任务可设置不同的设定时长阈值,本申请实施例对此不做限定。

可以理解的是,通过设置合适的同步条件,在不增加系统的运行处理时间和系统资源的消耗的情况下,还可以及时地将已处理完的批量任务提交到数据库中进行保存,通过设置合适的提交频率,进行合理地提交,有利于系统对批量任务进行并行处理。

可选地,删除所存储的各所述业务数据的结果数据中的重复数据。

具体地,可采用去重技术,实现对结果数据中的重复数据进行删除的效果。上述去重技术可分为两种:第一种是直接将新生成的结果数据覆盖掉之前生成的结果数据;第二种是在生成新的结果数据之前,对结果数据所在的存储目录进行扫描,其中,各结果数据拥有给自对应的文件标识,若上述存储目录下存在对应的文件标识,则直接跳过,不会再生成新的结果数据。

可以理解的是,通过对存储的各所述业务数据的结果数据中的重复数据进行删除,可实现对目标任务进行错误补偿时(如重跑或回退方法等),尽管结果数据生成的次数不止超过一次,但能保证在输出的结果数据中只出现一次。

本申请实施例通过将执行异常的批量处理任务作为目标任务,根据目标任务关联的业务数据,对目标任务进行错误补偿,并继续执行对至少一个批量处理任务的处理操作,实现了在批量处理任务执行异常的情况下,准确定位执行异常的目标任务,并根据目标任务关联的业务数据,对执行异常的批量任务进行错误补偿,使得后续的批量处理任务可以继续往下执行,完善了批量处理过程中的异常容错机制,保证了批量处理运行能满足业务需求、性能以及稳定性的要求。

实施例二

图2为本申请实施例二提供的批量处理方法的流程图,本实施例是在上述实施例的基础上,对上述方案的优化。

进一步地,将操作“根据所述目标任务关联的业务数据,对所述目标任务进行错误补偿”,细化为“根据所述目标任务关联的业务数据,确定所述目标任务的任务类型;确定与所述目标任务的任务类型关联的目标错误补偿方法;根据所述目标错误补偿方法,对所述目标任务进行错误补偿”,以完善目标错误补偿方法的选取机制。

进一步地,将操作“确定与所述目标任务的任务类型关联的目标错误补偿方法”,细化为“根据所述目标任务的任务类型关联的各候选错误补偿方法的优先级,从至少一个所述候选错误补偿方法中选取目标错误补偿方法”,以进一步完善目标错误补偿方法的选取机制。

其中与上述实施例相同或相应的术语的解释在此不再赘述。

参见图2,本实施例提供的一种批量处理方法包括:

S210、响应于批量处理请求,对业务数据执行至少一个批量处理任务。

S220、若至少一个批量处理任务执行异常,则将执行异常的批量处理任务作为目标任务。

S230、根据目标任务关联的业务数据,确定目标任务的任务类型。

其中,目标任务的任务类型可以根据对批量处理执行过程的时效性和/或数据一致性加以区分。示例性地,目标任务的任务类型可以包括对批量处理时效性要求高的任务类型、对批量处理数据一致性要求高的任务类型、对批量处理时效性要求不高,但对数据一致性有一定要求的任务类型、以及对批量处理数据一致性要求不高,但对时效性有一定要求的任务类型等。

可以理解的是,在根据目标任务关联的业务数据,确定了目标任务的任务类型之后,可根据目标任务的任务类型选取对应合适的错误补偿方法对目标任务进行补偿。

S240、确定与所述目标任务的任务类型关联的目标错误补偿方法。

其中,确定与所述目标任务的任务类型关联的目标错误补偿方法,可以是根据目标任务的任务类型,确定与任务类型对应的预设的目标错误补偿方法。其中,预设的目标错误补偿方法是指,根据目标任务的任务类型,在对批量处理任务进行执行之前,预先确定的与任务类型对应的合适的错误补偿方法。

可选地,所述目标错误补偿方法包括断点重提方法、跳过错误方法、回退方法或重跑方法。

具体地,确定与所述目标任务的任务类型关联的目标错误补偿方法,包括:若是对批量处理时效性要求高的批量处理任务,可选择跳过错误方法;若是对批量处理数据一致性要求高的批量处理任务,可选择重跑方法;若是对批量处理任务的时效性要求不高,但对数据一致性有一定要求的批量处理任务,可选择回退方法;若是对批量处理任务的数据一致性要求不高,但对时效性有一定要求的批量处理任务,可选择断点重提方法。

可以理解的是,根据目标任务类型,确定的与目标任务的任务类型关联的目标错误补偿方法,从而为执行异常的不同目标任务对应选取合适的错误补偿方法,为批量处理过程中异常补偿的有效性奠定了基础。

可选地,根据所述目标任务的任务类型关联的各候选错误补偿方法的优先级,从至少一个所述候选错误补偿方法中选取目标错误补偿方法。

其中,候选错误补偿方法是指可作为目标错误补偿方法对目标任务进行错误补偿的方法。

各候选错误补偿方法的优先级是指针对多个候选错误补偿方法,在对不同的目标任务进行错误补偿时,不同的候选错误补偿方法,其执行错误补偿的先后顺序是不同的。换句话说,针对待进行错误补偿的目标任务,先选取与之对应优先级最高的目标错误补偿方法进行错误补偿,若处于第一优先级的错误补偿方法执行失败,则可再根据次于第一优先级的错误补偿方法继续执行对目标任务的错误补偿过程。其中,各候选错误补偿方法的优先级可根据业务数据的实际情况进行预先确定。

可以理解的是,与目标任务的任务类型关联的错误补偿方法可能不止一种,例如,针对某一特定任务类型的目标任务,上述的断点重提方法、回退方法、重跑方法和跳过错误方法均适用。因此,可根据各候选错误补偿方法的优先级,从至少一个候选错误补偿方法中选取目标错误补偿方法,对目标任务进行错误补偿,实现了在确定目标任务的任务类型之后,可根据优先级顺序选取目标错误补偿方法对目标任务进行补偿的效果。

需要注意的是,有的业务数据并不适用于所有的错误补偿方法,例如转账支付批量任务不适用重跑方法,已完成转账支付的,不能再重复执行,否则就有可能导致重复付款。

S250、根据目标错误补偿方法,对目标任务进行错误补偿。

可选地,若所述目标错误补偿方法为所述断点重提方法,则所述根据所述目标错误补偿方法,对所述目标任务进行错误补偿,包括:确定所述目标任务的出错位置信息;根据所述出错位置信息,对所述目标任务进行重新处理。

其中,出错位置信息是指目标任务执行异常的当前节点位置。

根据出错位置信息,对所述目标任务进行重新处理是指,重新获取目标任务执行异常的当前节点位置,在上述当前节点位置处继续往下执行批量处理任务。

例如,整个批量处理任务包括A、B和C共三个顺序执行的子任务,现子任务B(包含100条数据,即B1到B100)中有一条数据B5出错,记录执行异常的位置信息,重新获取B5的位置信息,从B5位置处继续往下执行批量处理任务

可以理解的是,断点重提方法适用于对批量处理数据一致性要求不高,但对时效性有一定要求的批量处理任务。

或者可选地,若所述目标错误补偿方法为所述跳过错误方法,则所述根据所述目标错误补偿方法,对所述目标任务进行错误补偿,包括:确定所述目标任务的出错位置信息;跳过所述出错位置信息,继续执行对所述目标任务的批量处理。

其中,跳过所述出错位置信息,继续执行对所述目标任务的批量处理是指,基于目标任务执行异常的当前节点位置,选择跳过当前出错的节点位置,从上述出错的节点位置的下一个节点位置处继续往下执行批量处理任务。

例如,整个批量处理任务包括A、B和C共三个顺序执行的子任务,现子任务B(包含100条数据,即B1到B100)中有一条数据B5出错,记录执行异常的位置信息,跳过B5,从B6位置处继续往下执行批量处理任务。

可以理解的是,跳过错误方法适用于对批量处理时效性要求高的批量处理任务。

或者可选地,若所述目标错误补偿方法为所述回退方法,则所述根据所述目标错误补偿方法,对所述目标任务进行错误补偿,包括:确定所述目标任务的出错位置信息;回退执行所述出错位置所属的出错子任务,并继续对所述目标任务中所述出错子任务之后的未处理子任务进行批量处理。

其中,回退执行所述出错位置所属的出错子任务,并继续对所述目标任务中所述出错子任务之后的未处理子任务进行批量处理是指,基于目标任务中出错位置所在的子任务,回退到子任务的初始节点位置,在上述初始节点位置处继续往下执行批量处理任务。

例如,整个批量处理任务包括A、B和C共三个顺序执行的子任务,现子任务B(包含100条数据,即B1到B100)中有一条数据B5出错,记录执行异常的位置信息,找出之前处理完成的4条数据,回退到未处理前的状态,重新开始对子任务B的批量处理,即从B1继续往下执行批量处理任务。

可以理解的是,回退方法适用于对批量处理时效性要求不高,但对数据一致性有一定要求的批量处理任务。

或者可选地,若所述目标错误补偿方法为所述重跑方法,则所述根据所述目标错误补偿方法,对所述目标任务进行错误补偿,包括:确定所述目标任务的出错位置信息;重新获取所述出错位置信息中的业务数据,作为当前业务数据;根据所述当前业务数据,重新对所述至少一个批量处理任务进行批量处理。

其中,新获取所述出错位置信息中的业务数据是指,重新获取到出错位置所在业务数据中的批量处理任务。根据所述当前业务数据,重新对所述至少一个批量处理任务进行批量处理是指,根据重新获取到的批量处理任务,从批量处理任务的初始节点位置处继续往下执行批量处理任务。

例如,整个批量处理任务包括A、B和C共三个顺序执行的子任务,现子任务B(包含100条数据,即B1到B100)中有一条数据B5出错,记录执行异常的位置信息,重新开始对整个批量处理任务进行处理,即从A1(子任务A下面也有多条数据)位置处继续往下执行批量处理任务。

可以理解的是,重跑方法适用于对批量处理数据一致性要求高的批量处理任务。

可选地,在根据错误补偿方法对目标任务进行错误补偿时,设置重试错误上限,比如3次或5次等,并且每次进行错误补偿时可设置不同的重试时间间隔,例如间隔时间依次增长。若达到重试上限还是补偿失败,则需要人工进行干预。此时可设置告警机制,在重试次数超过上限时,给相关责任人发送短信通知,便于即时解决问题。

可选地,若上述错误补偿方法均不能使得当前的批量处理任务继续往下执行,则认为超过现有的错误补偿方法的补偿范围,也即目标任务出现严重逻辑错误或批量的错误数据。因此,对于上述待进行错误补偿的目标任务,则需要批处理开发人员定位执行异常的位置点,做相应处理,比如错误数据就需要找到数据源头修正数据,逻辑错误就需要考虑修正之前的程序代码,如果是关联系统或第三方系统错误就需要对相应的系统进行查看和处理。

S260、继续执行对至少一个所述批量处理任务的处理操作。

可选地,若所述目标错误补偿方法为所述断点重提方法、跳过错误方法、回退方法或跳过错误方法,则所述继续执行对至少一个所述批量处理任务的处理操作,包括:继续执行对所述目标任务之后的至少一个所述批量处理任务的处理操作。

可以理解的是,在当前的批量处理任务执行完成之后,可继续对后续的批量处理任务进行处理。

本申请实施例在上述实施例的基础上,根据目标任务关联的业务数据,确定目标任务的任务类型,并进一步根据目标任务的任务类型,确定了与目标任务的任务类型关联的目标错误补偿方法,通过对目标任务的任务类型进行明确,选取了与目标任务相适应的目标错误补偿方法;同时,不同任务类型可对应多个错误补偿方法,并且可预先根据实际需求为各错误补偿方法确定优先级,进一步完善了目标错误补偿方法的选取机制。

实施例三

图3为本申请实施例三提供的批量处理方法的流程图,本实施例是在上述各实施例的基础上,对上述方案的优化。

进一步地,在批量处理任务执行完成之后,增加操作“根据断点记录数据,确定所述至少一个批量处理任务中的中断任务;执行所述中断任务以及所述中断任务之后的其他批量处理任务;更新所述断点记录数据”,以确定真实的断点记录数据。

其中与上述实施例相同或相应的术语的解释在此不再赘述。

参见图3,本实施例提供的一种批量处理方法包括:

S310、响应于批量处理请求,对业务数据执行至少一个批量处理任务。

S320、若至少一个批量处理任务执行异常,则将执行异常的批量处理任务作为目标任务。

S330、根据目标任务关联的业务数据,对目标任务进行错误补偿,并继续执行对至少一个批量处理任务的处理操作。

S340、根据断点记录数据,确定至少一个批量处理任务中的中断任务。

其中,断点记录数据是指批量处理任务执行失败保存下来的断点位置,相较于执行异常来说(执行异常可通过错误补偿方法进行错误补偿),执行失败会导致退出当前的批量处理任务,从而不能继续往下执行批量处理任务。

中断任务是指获取断点记录数据,从断点位置处继续往下执行后续的批量处理任务,一个断点数据可对应一个中断任务。

可以理解的是,若批量处理任务正常执行,则将不会记录任何断点。然而在大数据量的业务数据进行批量处理的情况下,由于数据更新不及时、对接第三方等原因导致数据差异或数据错误,进而导致批量处理任务执行失败,此时就需要记录断点,待整个批量处理任务执行完成之后,可集中对已记录的断点数据进行断点续跑,以实现对断点位置进行重新确定的效果。

可选地,对已记录的断点数据进行断点续跑的时间可以不固定,例如可以是一个批量任务完成之后就进行断点续跑,还可以是多个批量任务完成之后进行断点续跑,也可以是整个批量处理任务完成之后进行断点续跑,本申请实施例对此不做具体限定。

S350、执行中断任务以及中断任务之后的其他批量处理任务。

可以理解的是,若当前中断任务处的数据已更新或修正完成,此时的中断任务将会执行成功,并继续往下执行中断任务之后的其他批量处理任务。

S360、更新断点记录数据。

具体地,在执行中断任务以及中断任务之后的其他批量处理任务的过程中,若批量处理完成的数据量达到一定的数据量阈值时,将已处理完成的数据进行保存,并将当前处理成功的位置数据信息作为新的断点记录信息,对断点记录数据进行更新;若中断任务以及中断任务之后的其他批量处理任务执行失败,记录执行失败的位置数据信息,并将上述位置数据信息更新到断点记录数据中。

可选地,一个批量处理任务可设置一个断点,待每次有新的断点产生时,就将新的断点数据信息替换掉原来旧的断点数据信息;或者,一个批量处理任务可设置多个断点,新的断点产生时,将其作为最近的是断点数据信息进行存储,其余的是历史断点数据信息,后续断点续跑时可以读取最近的断点数据信息,并从最近的断点位置处进行执行。

可以理解的是,通过对断点记录数据进行不断地更新,可以确定最终真实的断点位置信息,而良好的断点位置信息,便于问题排查和问题分析,以保证批量处理系统的安全性和稳定性。

可选地,若所述中断任务重复执行次数大于设定次数阈值,则停止执行所述中断任务。

其中,设定次数阈值是指中断任务执行的次数上限。

可以理解的是,若达到设定次数阈值,中断任务还是执行失败,则需停止还在执行的中断任务并进行人工干预,以节约批量处理的时间。通常,在批量处理的过程中,设置有告警机制,在中断任务执行的次数超过上限时,给相关责任人发送短信通知,便于即时解决问题。

可选地,将已成功处理且未存储处理结果的业务数据作为候选业务数据;若所述候选业务数据的数据量大于设定数据量阈值,则存储所述候选业务数据的结果数据;和/或,若所述候选业务数据的处理时长大于设定时长阈值,则存储所述候选业务数据的结果数据。

可以理解的是,通过设置合适的同步条件,在不增加系统的运行处理时间和系统资源的消耗的情况下,还可以及时地将已处理完的批量任务提交到数据库中进行保存,通过设置合适的提交频率,进行合理地提交,有利于系统对批量任务进行并行处理。

可选地,删除所存储的各所述业务数据的结果数据中的重复数据。

可以理解的是,通过对存储的各所述业务数据的结果数据中的重复数据进行删除,可实现对目标任务进行断点续跑时,尽管结果数据生成的次数不止超过一次,但能保证在输出的结果数据中只出现一次。

本申请实施例在上述实施例的基础上,待批量处理任务执行完成之后,基于断点记录数据,对确定的中断任务进行重新执行,仅需要从记录的断点位置处,继续往下执行断点后的批量处理任务数据,避免已处理的批量处理任务数据重新处理,实现了减少待处理数据量,减小批量处理压力的效果;同时,根据中断任务的执行情况,确定了最新的真实的中断记录数据。

实施例四

图4为本申请实施例四提供的批量处理方法的流程图,本实施例是在上述各实施例的基础上,提出的一种优选的实施例方案,本申请实施例可适用于在财险系统中,对批量任务进行处理的情况。

在本申请实施例中,其中与上述各实施例相同或相应的术语的解释在此不再赘述。

参见图4,本实施例提供的一种批量处理方法包括:

S401、响应于日终批量处理开始请求,对日间批量处理任务进行批量中止。

其中,在对日间批量处理任务进行批量中止的这一时间段里,存在多个批量中止任务。

如附图5所示为本申请实施例的日终批量处理的流程图,在接收到日终批量处理开始请求后,开始对日间批量处理任务进行批量中止,也即图5中的T0时段。

本实施例中,财险系统采用“联机交易+批量任务”组合的方式,来满足7×24小时在线服务需求,保证交易不中断。一般地,大部分批量任务均安排在晚间运行,统称为日终批量处理。

S402、若至少一个批量中止任务执行异常,则根据执行异常的批量中止任务所关联的业务数据,确定执行异常的批量中止任务的任务类型。

S403、确定与执行异常的批量中止任务的任务类型关联的目标错误补偿方法,对执行异常的批量中止任务进行错误补偿。

具体地,确定与执行异常的批量中止任务的任务类型关联的目标错误补偿方法,包括:若是对批量处理任务的数据一致性要求不高,但对时效性有一定要求的批量处理任务,可选择断点重提方法,如附图6所示为本申请实施例的断点重提方法的流程图;若是对批量处理时效性要求高的批量处理任务,可选择跳过错误方法,如附图7所示为本申请实施例的跳过错误方法的流程图;若是对批量处理任务的时效性要求不高,但对数据一致性有一定要求的批量处理任务,可选择回退方法,如附图8所示为本申请实施例的回退方法的流程图;若是对批量处理数据一致性要求高的批量处理任务,可选择重跑方法,如附图9所示为本申请实施例的重跑方法的流程图。

S404、继续执行对至少一个批量中止任务的处理操作。

S405、若批量中止任务全部执行完毕,响应于联机日期切换请求,对业务数据中的资金流信息进行日终业务批量处理。

其中,在对业务数据中的资金流信息进行日终业务批量处理的这一时间段里,存在多个日终批量处理任务。

继续参见图5,在接收到联机日期切换请求后,开始对业务数据中的资金流信息进行日终业务批量处理,也即图5中的T1时段。

S406、若至少一个日终批量处理任务执行异常,则根据执行异常的日终批量处理任务关联的业务数据,确定执行异常的日终批量处理任务的任务类型。

S407、确定与执行异常的日终批量处理任务的任务类型关联的目标错误补偿方法,对执行异常的日终批量处理任务进行错误补偿。

具体地,确定与执行异常的日终批量处理任务的任务类型关联的目标错误补偿方法,包括:若是对批量处理任务的数据一致性要求不高,但对时效性有一定要求的批量处理任务,可选择断点重提方法,继续参见图6;若是对批量处理时效性要求高的批量处理任务,可选择跳过错误方法,继续参见图7;若是对批量处理任务的时效性要求不高,但对数据一致性有一定要求的批量处理任务,可选择回退方法,继续参见图8;若是对批量处理数据一致性要求高的批量处理任务,可选择重跑方法,继续参见图9。

S408、继续执行对至少一个日终批量处理任务的处理操作。

S409、若日终批量处理任务全部执行完毕,响应于批量日期切换请求,对业务数据中的总账信息进行日初业务批量处理。

继续参见图5,在接收到批量日期切换请求后,开始对业务数据中的总账信息进行日初业务批量处理,也即图5中的T2时段。

其中,在对业务数据中的总账信息进行日初业务批量处理的这一时间段里,存在多个日初批量处理任务。

本实施例中,日初业务批量处理又可包括记账预处理阶段、数据准备与传输阶段以及数据清理阶段三个阶段。在记账预处理阶段,主要进行财务退票处理、业务明细类凭证生成以及推送等;在数据准备与传输阶段,主要进行账单打印、各类业务统计、回访业务数据同步和产品数据同步等;在数据清理阶段,主要进行数据的归档以及数据的清理等。

S410、若至少一个日初批量处理任务执行异常,则根据执行异常的日初批量处理任务关联的业务数据,确定执行异常的日初批量处理任务的任务类型。

S411、确定与执行异常的日初批量处理任务的任务类型关联的目标错误补偿方法,对执行异常的日初批量处理任务进行错误补偿。

具体地,确定与执行异常的日初批量处理任务的任务类型关联的目标错误补偿方法,包括:若是对批量处理任务的数据一致性要求不高,但对时效性有一定要求的批量处理任务,可选择断点重提方法,继续参见图6;若是对批量处理时效性要求高的批量处理任务,可选择跳过错误方法,继续参见图7;若是对批量处理任务的时效性要求不高,但对数据一致性有一定要求的批量处理任务,可选择回退方法,继续参见图8;若是对批量处理数据一致性要求高的批量处理任务,可选择重跑方法,继续参见图9。

S412、继续执行对至少一个日初批量处理任务的处理操作。

S413、若日初批量处理任务全部执行完毕,根据断点记录数据,确定至少一个批量处理任务中的中断任务,并执行中断任务以及中断任务之后的其他批量处理任务,对断点记录数据进行更新。

本实施例中,在整个日终批量处理结束后,留下固定时间段对断点记录数据进行断点续跑。如附图10所示为本申请实施例中的更新断点记录数据的流程图。

在对结果数据进行存储之前,删除所存储的各业务数据的结果数据中的重复数据。可以理解的是,通过对存储的各业务数据的结果数据中的重复数据进行删除,可实现对目标任务进行断点续跑时,尽管结果数据生成的次数不止超过一次,但能保证在输出的结果数据中只出现一次。

为了避免对处理完的批量任务进行过于频繁地提交,增加系统的运行处理时间以及对系统资源的消耗,考虑设置合适的批量任务同步机制,将已成功处理且未存储处理结果的业务数据作为候选业务数据;若候选业务数据的数据量大于设定数据量阈值,则存储候选业务数据的结果数据;和/或,若候选业务数据的处理时长大于设定时长阈值,则存储候选业务数据的结果数据。

本申请实施例针对财险业务,提出一种适用于日终批量处理的方法,包括对批量处理时段的划分、对执行异常的批量处理任务进行错误补偿、对断点记录数据进行断点续跑以及对结果数据进行数据库同步等操作,完善了日终批量处理的设计逻辑,保证批量处理过程可以稳定和高效运行,保证财险系统能够7×24小时进行不间断服务。

实施例五

图11是本申请实施例五提供的一种批量处理装置的结构示意图。参见图10,本申请实施例提供的一种批量处理装置,该装置包括:批量处理模块510、目标任务确定模块520和错误补偿模块530。

批量处理模块510,用于响应于批量处理请求,对业务数据执行至少一个批量处理任务;

目标任务确定模块520,用于若至少一个所述批量处理任务执行异常,则将执行异常的批量处理任务作为目标任务;

错误补偿模块530,用于根据所述目标任务关联的业务数据,对所述目标任务进行错误补偿,并继续执行对至少一个所述批量处理任务的处理操作。

本申请实施例通过将执行异常的批量处理任务作为目标任务,根据目标任务关联的业务数据,对目标任务进行错误补偿,并继续执行对至少一个批量处理任务的处理操作,实现了在批量处理任务执行异常的情况下,准确定位执行异常的目标任务,并根据目标任务关联的业务数据,对执行异常的批量任务进行错误补偿,使得后续的批量处理任务可以继续往下执行,完善了批量处理过程中的异常容错机制,保证了批量处理运行能满足业务需求、性能以及稳定性的要求。

进一步地,批量处理模块,包括:

日间批量中止单元,用于响应于日终批量处理开始请求,对日间批量处理任务进行批量中止;

日终批量处理单元,用于响应于联机日期切换请求,对所述业务数据中的资金流信息进行日终业务批量处理;

日初批量处理单元,用于响应于批量日期切换请求,对所述业务数据中的总账信息进行日初业务批量处理。

进一步地,错误补偿模块,包括:

任务类型确定单元,用于根据所述目标任务关联的业务数据,确定所述目标任务的任务类型;

补偿方法确定单元,用于确定与所述目标任务的任务类型关联的目标错误补偿方法;

错误补偿单元,用于根据所述目标错误补偿方法,对所述目标任务进行错误补偿。

进一步地,补偿方法确定单元,包括:

补偿方法选取子单元,用于根据所述目标任务的任务类型关联的各候选错误补偿方法的优先级,从至少一个所述候选错误补偿方法中选取目标错误补偿方法。

进一步地,所述目标错误补偿方法包括断点重提方法、跳过错误方法、回退方法或重跑方法。

进一步地,错误补偿单元,包括:

位置确定第一子单元,用于若所述目标错误补偿方法为所述断点重提方法,确定所述目标任务的出错位置信息;

重新处理子单元,用于根据所述出错位置信息,对所述目标任务进行重新处理;

继续执行第一子单元,用于继续执行对所述目标任务之后的至少一个所述批量处理任务的处理操作。

进一步地,错误补偿单元,包括:

位置确定第二子单元,用于若所述目标错误补偿方法为所述跳过错误方法,确定所述目标任务的出错位置信息;

跳过子单元,用于跳过所述出错位置信息,继续执行对所述目标任务的批量处理;

继续执行第二子单元,用于继续执行对所述目标任务之后的至少一个所述批量处理任务的处理操作。

进一步地,错误补偿单元,包括:

位置确定第三子单元,用于若所述目标错误补偿方法为所述回退方法,确定所述目标任务的出错位置信息;

回退执行子单元,用于回退执行所述出错位置所属的出错子任务,并继续对所述目标任务中所述出错子任务之后的未处理子任务进行批量处理;

继续执行第三子单元,用于继续执行对所述目标任务之后的至少一个所述批量处理任务的处理操作。

进一步地,错误补偿单元,包括:

位置确定第四子单元,用于若所述目标错误补偿方法为所述重跑方法,确定所述目标任务的出错位置信息;

重新获取子单元,用于重新获取所述出错位置信息中的业务数据,作为当前业务数据;

重新处理子单元,用于根据所述当前业务数据,重新对所述至少一个批量处理任务进行批量处理。

继续执行第四子单元,用于继续执行对所述目标任务之后的至少一个所述批量处理任务的处理操作。

进一步地,所述装置,还包括:

中断任务确定模块,用于根据断点记录数据,确定所述至少一个批量处理任务中的中断任务;

中断任务处理模块,用于执行所述中断任务以及所述中断任务之后的其他批量处理任务;

断点更新模块,用于更新所述断点记录数据。

进一步地,所述装置,还包括:

待存储数据确定模块,用于在执行所述至少一个批量处理任务过程中,将已成功处理且未存储处理结果的业务数据作为候选业务数据;

数据存储模块,用于若所述候选业务数据的数据量大于设定数据量阈值,则存储所述候选业务数据的结果数据;和/或,

若所述候选业务数据的处理时长大于设定时长阈值,则存储所述候选业务数据的结果数据。

进一步地,所述装置,还包括:

删除模块,用于删除所存储的各所述业务数据的结果数据中的重复数据。

本申请实施例所提供的批量处理装置可执行本申请任意实施例所提供的批量处理方法,具备执行批量处理方法相应的功能模块和有益效果。

实施例六

图12为本申请实施例六提供的一种批量处理设备的结构示意图,如图12所示,该设备包括处理器610、存储器620、输入装置630和输出装置640。

设备中处理器610的数量可以是一个或多个,图12中以一个处理器610为例;设备中的处理器610、存储器620、输入装置630和输出装置640可以通过总线或其他方式连接,图12中以通过总线连接为例。

其中,输入装置630,用于响应批量处理请求。

输出装置640,用于输出对批量处理任务的执行结果。

处理器610可以根据输入装置630响应的批量处理请求,对业务数据执行至少一个批量处理任务;还可以在至少一个所述批量处理任务执行异常的时候,将执行异常的批量处理任务作为目标任务,并根据所述目标任务关联的业务数据,对所述目标任务进行错误补偿;还可以在对所述目标任务进行错误补偿后,继续执行对至少一个所述批量处理任务的处理操作;还可以向输出装置640输出对批量处理任务的执行结果。

存储器620作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本申请实施例中的批量处理方法对应的程序指令/模块(例如,批量处理装置中的批量处理模块510、目标任务确定模块520和错误补偿模块530)。处理器610通过运行存储在存储器620中的软件程序、指令以及模块,从而执行设备的各种功能应用以及数据处理,即实现上述的批量处理方法。

存储器620可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端的使用所创建的数据等(如上述实施例中的业务数据、目标错误补偿方法、断点记录数据和业务数据的结果数据等)。此外,存储器620可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器620可进一步包括相对于处理器610远程设置的存储器,这些远程存储器可以通过网络连接至设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

输入装置630可用于接收输入的数字或字符信息,以及产生与设备的用户设置以及功能控制有关的键信号输入。输出装置640可包括显示屏等显示设备。

实施例七

本申请实施例七还提供一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行一种批量处理方法,该方法包括:

响应于批量处理请求,对业务数据执行至少一个批量处理任务;

若至少一个所述批量处理任务执行异常,则将执行异常的批量处理任务作为目标任务;

根据所述目标任务关联的业务数据,对所述目标任务进行错误补偿,并继续执行对至少一个所述批量处理任务的处理操作。

当然,本申请实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的方法操作,还可以执行本申请任意实施例所提供的批量处理方法中的相关操作。

通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本申请可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、闪存(FLASH)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述的方法。

值得注意的是,上述批量处理装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。

注意,上述仅为本申请的较佳实施例及所运用技术原理。本领域技术人员会理解,本申请不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本申请的保护范围。因此,虽然通过以上实施例对本申请进行了较为详细的说明,但是本申请不仅仅限于以上实施例,在不脱离本申请构思的情况下,还可以包括更多其他等效实施例,而本申请的范围由所附的权利要求范围决定。

相关技术
  • 一种批量数据处理方法、装置、设备以及存储介质
  • 联机小批量数据处理方法、装置、设备及存储介质
技术分类

06120112641153