具体实施方式
为了使本领域技术人员更好地理解本说明书实施例中的技术方案,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行详细地描述,显然,所描述的实施例仅仅是本说明书的一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员所获得的所有其他实施例,都应当属于保护的范围。
对于一个业务系统而言,通常涉及到多项业务,而在一项业务处理过程中,又将涉及到多个批次,即业务环节、业务阶段。以网贷系统为例,假设一笔借款产品,有10个投资人购买,在该借款产品全额售罄后,首先对该10个投资人的投资交易批量地进行电子签章,然后向借款人放款,待借款人收到款项之后,再次对该10个投资人的投资交易批量地进行登账确认,至此,完成本次借款。由此可见,在该举例中,一项业务处理过程中涉及到电子签章、登账确认两个业务阶段,即批次。
现有技术中,开发人员需针对每一项业务、每一批次分别定制化开发一套业务逻辑,由此也就导致开发成本较大,并且后期运维困难。
为了解决上述问题,本说明书实施例提供一种业务流水批量处理方法,以实现针对一项业务处理过程中的多个批次,仅定制化开发一套业务逻辑,该业务逻辑可适用于每一批次,从而降低开发成本,提升后期运维效率。
如下,示出下述实施例对该业务流水批量处理方法进行说明:
实施例一:
请参见图1,为本说明书一示例性实施例提供的一种业务流水批量处理方法的实施例流程图,该方法可以包括以下步骤:
步骤102:获取待调度的业务流水批次,该业务流水批次对应多条待处理业务流水。
在本说明书实施例中,以批量处理平台执行该方法为例,业务平台接收到客户端发起的待处理业务流水之后,将待处理业务流水发送至批量处理平台,批量处理平台则可以接收到多条待处理业务流水。
后续,批量处理平台接收到用于指示对待处理业务流水进行打批的触发指令时,可以根据预先设置的业务流水打批规则,在所接收到的多条待处理业务流水中选取至少两条待处理业务流水进行打批,得到待调度的业务流水批次,由此可见,该待调度的业务流水批次对应多条待处理业务流水。
在一实施例中,上述用于指示对待处理业务流水进行打批的触发指令可以由业务人员手动发起,例如,业务人员可以通过点击批量处理平台提供的操作界面上的指定控件,以发出该触发指令。
在另一实施例中,可以预先设置一定时器,通过该定时器实现自动发起用于指示对待处理业务流水进行打批的触发指令。
需要说明是,在本说明书实施例中,上述业务流水打批规则可用于指示对所接收到的多条待处理业务流水中的哪些待处理业务流水进行打批,例如,业务流水打批规则用于指示将生成时间处于一指定时段内的待处理业务流水进行打批;又例如,业务流水打批规则用于指示将来自指定客户端的待处理业务流水进行打批。本领域技术人员可以理解的是,上述举例仅仅是对业务流水打批规则做示例性说明,本说明书实施例对具体的业务流水打批规则并不做限制。
后续,则可以对该待调度的业务流水批次进行注册,得到该待调度的业务流水批次的批次信息,该批次信息可以包括批次号、批次状态等,其中,批次号可标识具体的业务流程阶段,例如电子签章阶段;批次状态可标识批次执行的业务过程。
步骤104:当接收到用于指示对业务流水批次进行批处理的触发指令时,加载预先设置的业务流水完结条件扩展,该业务流水完结条件扩展用于判断针对待处理业务流水的业务处理过程是否已完结。
步骤106:针对业务流水批次对应的多条待处理业务流水中的任一待处理业务流水,执行业务流水完结条件扩展,若获取到用于表示针对待处理业务流水的业务处理过程未完结的执行结果,则针对待处理业务流水进行业务处理。
如下,对步骤104和步骤106进行说明:
首先说明,上述用于指示对待调度的业务流水批次进行批处理的触发指令可以由业务人员手动发起,也可以预先设置一定时器,通过该定时器实现自动发起用于指示对待调度的业务流水批次进行批处理的触发指令,本说明书实施例对此不做限制。
在本说明书实施例中,当接收到用于指示对待调度的业务流水批次进行批处理的触发指令时,可以首先从业务平台加载预先设置的业务流水完结条件扩展,该业务流水完结条件扩展用于判断针对待处理业务流水的业务处理过程是否已完结。后续,则可以针对待调度的业务流水批次对应的多条待处理业务流水中的任一待处理业务流水,执行上述加载的业务流水完结条件扩展。
在一实施例中,执行上述业务流水完结条件扩展时,可以获取待处理业务流水的上下文信息,该上下文信息中则可包括该待处理业务流水的完结状态,该完结状态的值可以为“success”或“failure”,其中,“success”表示针对待处理业务流水的业务处理过程已完结,“failure”则表示针对待处理业务流水的业务处理过程未完结。
基于此,若获取到的完结状态为“success”,则通过执行上述业务流水完结条件扩展,则可以获取到用于表示针对待处理业务流水的业务处理过程已完结的执行结果,例如“true”;若获取到的完结状态为“failure”,则通过执行上述业务流水完结条件扩展,则可以获取到用于表示针对待处理业务流水的业务处理过程未完结的执行结果,例如“false”。
后续,若获取到用于表示针对待处理业务流水的业务处理过程未完结的执行结果,则可以针对该待处理业务流水进行业务处理。
此外,在本说明书实施例中,在针对任一条待处理业务流水执行完上述过程之后,还可以从业务平台加载并执行预先设置的所有业务流水完结状态检查扩展,该所有业务流水完结状态检查扩展用于判断针对多条待处理业务流水的业务处理过程是否均已完结。
在一实施例中,在执行上述所有业务流水完结状态检查扩展时,可以获取上述所描述的任一条待处理业务流水的完结状态,若存在任一条待处理业务流水的完结状态为“failure”,则通过执行上述所有业务流水完结状态检查扩展,可以获取到用于表示针对多条待处理业务流水的业务处理过程未完结的执行结果,例如“false”;若每一条待处理业务流水的完结状态均为“success”,则通过执行上述所有业务流水完结状态检查扩展,可以获取到用于表示针对多条待处理业务流水的业务处理过程均已完结的执行结果,例如“true”。
后续,若获取到用于表示针对多条待处理业务流水的业务处理过程均已完结的执行结果,则可以进一步从业务平台加载并执行预先设置的业务汇总处理扩展,该业务汇总处理扩展用于指示执行下一业务处理过程,例如,从业务平台加载并执行预先设置的业务汇总处理扩展,以进一步执行向借款人放款的业务处理过程。
若获取到用于表示针对多条待处理业务流水的业务处理过程未完结的执行结果,则可以将当前业务流水批次挂起,等待下一次的批处理操作。
通过该种处理,可以进一步保障针对当前业务流水批次中的每一条待处理业务流水的业务处理过程均已完结,从而增强批处理的可靠性与稳定性。
本说明书实施例所提供的技术方案,通过获取待调度的业务流水批次,该业务流水批次对应多条待处理业务流水;当接收到用于指示对该业务流水批次进行批处理的触发指令时,加载预先设置的业务流水完结条件扩展,该业务流水完结条件扩展用于判断针对待处理业务流水的业务处理过程是否已完结;针对该业务流水批次对应的多条待处理业务流水中的任一待处理业务流水,执行该业务流水完结条件扩展;若获取到用于表示针对待处理业务流水的业务处理过程未完结的执行结果,则针对待处理业务流水进行业务处理。由此可见,通过该过程,实现了针对多个批次,仅定制化开发一套业务逻辑,在业务平台侧实现该业务逻辑,批量处理平台在对不同批次进行批处理时,加载该业务逻辑即可,从而降低开发成本,提升后期运维效率。
至此,完成实施例一的相关描述。
实施例二:
目前,业务系统在对待处理业务流水进行批量处理的过程,常常通过建立批次与批次流水1:N的模式来做明细与汇总的执行处理,该1:N的模式是指,对于一个批次而言,其对应有N条批次流水,且批次流水与业务流水是一一对应的,也即当对同一业务流水执行N阶段反复打批时,需要复制N份业务流水与多个批次相对应,由此可见,当业务流水数量增长,或者业务阶段数,也即批次数增长时,业务流水的总数量将呈现线性增长,从而增加数据存储成本以及造成业务系统IO损耗。
基于此,在本说明书实施例中,在上述图1所示实施例的基础上,进一步提出,针对每一批次,创建一条与该批次对应的批次扩展信息,该批次扩展信息则包括该批次对应的每一条业务流水的主键信息,从而,无需针对该批次生成上述批次流水,也即无需针对同一业务流水复制多份业务流水,从而可以降低数据存储成本,减少业务系统的IO损耗。
基于该描述,再结合图1所示实施例,对本说明书提供的业务流水批量处理方法做进一步说明。
请参见图2,为本说明书一示例性实施例提供的另一种业务流水批量处理方法的实施例流程图,该方法可以包括以下步骤:
步骤202:接收多条待处理业务流水。
步骤204:当接收到用于指示对待处理业务流水进行打批的触发指令时,根据预设的业务流水打批规则,在所接收到的多条待处理业务流水中选取两条以上待处理业务流水进行打批,得到待调度的业务流水批次。
步骤202与步骤204的详细描述可以参见上述实施例一中的相关描述,在此不再详述。
步骤206:对待调度的业务流水批次进行注册,得到待调度的业务流水批次的批次扩展信息,该批次扩展信息包括待调度的业务流水批次对应的多条待处理业务流水中任一条业务流水的主键信息。
在本说明书实施例中,对待调度的业务流水批次进行注册时,可以得到该业务流水批次的批次扩展信息,其中,该批次扩展信息包括该业务流水批次所对应的多条待处理业务流水中任一条业务流水的主键信息,该主键信息即为业务流水的唯一标识。
需要说明的是,上述批次扩展信息中还可以包括其他信息,例如,批次号,本说明书实施例对此不作限制。
另外,若待调度的业务流水批次对应的待处理的业务流水条数较多,或者业务流水的主键信息较长,导致整体的批次扩展信息的长度超过数据库字段的长度限制,例如,在MySQL数据库中,单个字段的最大长度为4000字节,Oceanbase数据库中,单个字段的最大长度为65535字节,则可以将整体的批次扩展信息拆分为多条批次扩展信息分别存储。
步骤208:当接收到用于指示对业务流水批次进行批处理的触发指令时,加载预先设置的业务流水完结条件扩展,该业务流水完结条件扩展用于判断针对待处理业务流水的业务处理过程是否已完结。
本步骤的详细描述可以参见上述实施例一中的相关描述,在此不再详述。
步骤210:遍历批次扩展信息中的主键信息,根据遍历到的主键信息获取待处理业务流水。
在本说明书实施例中,基于上述步骤206中的描述,则可以遍历批次扩展信息中的每一个主键信息,根据遍历到的主键信息获取待处理业务流水。
步骤212:针对所获取到的待处理业务流水执行业务流水完结条件扩展,若获取到用于表示针对待处理业务流水的业务处理过程未完结的执行结果,则执行步骤214;否则,执行步骤216;
步骤214:针对该待处理业务流水进行业务处理。
步骤216:确定是否遍历完批次扩展信息中的任一主键信息,若是,则执行步骤218;否则,返回执行步骤210。
步骤218:加载并执行预先设置的所有业务流水完结状态检查扩展,该所有业务流水完结状态检查扩展用于判断针对多条待处理业务流水的业务处理过程是否均已完结。
步骤220:若获取到用于表示针对多条待处理业务流水的业务处理过程均已完结的执行结果,则加载并执行预先设置的业务汇总处理扩展。
步骤212至步骤220的详细描述,可以参见上述实施例一中的相关描述,在此不再详述。本说明书实施例所提供的技术方案,通过在对待调度的业务流水批次进行注册时,得到该业务流水批次的批次扩展信息,该批次扩展信息包括多条待处理业务流水中任一条业务流水的主键信息,后续,在进行批处理时,则可以遍历该批次扩展信息中的任一主键信息,根据该主键信息获取业务流水,继而对该业务流水进行业务处理。由此可见,通过该种处理,可以实现针对一个批次处理阶段,仅生成一条批次扩展信息,而无需复制一份业务流水,从而降低了数据存储成本,减少了业务系统的IO损耗。
相应于上述方法实施例,本说明书实施例还提供一种业务流水批量处理装置,参见图3所示,为本说明书一示例性实施例提供的一种业务流水批量处理装置的实施例框图,该装置可以包括:获取模块31、第一加载模块32,以及业务处理模块33。
其中,获取模块31,用于获取待调度的业务流水批次,所述业务流水批次对应多条待处理业务流水;
第一加载模块32,用于当接收到用于指示对所述业务流水批次进行批处理的触发指令时,加载预先设置的业务流水完结条件扩展,所述业务流水完结条件扩展用于判断针对待处理业务流水的业务处理过程是否已完结;
业务处理模块33,用于针对所述业务流水批次对应的多条待处理业务流水中的任一待处理业务流水,执行所述业务流水完结条件扩展;若获取到用于表示针对所述待处理业务流水的业务处理过程未完结的执行结果,则针对所述待处理业务流水进行业务处理。
在一实施例中,所述获取模块31可以包括(图3中未示出):
接收子模块,用于接收多条待处理业务流水;
打批子模块,用于当接收到用于指示对待处理业务流水进行打批的触发指令时,根据预设的业务流水打批规则,在所接收到的多条待处理业务流水中选取两条以上待处理业务流水进行打批,得到待调度的业务流水批次。
在一实施例中,所述装置还可以包括(图3中未示出):
批次注册模块,用于对所述待调度的业务流水批次进行注册,得到所述待调度的业务流水批次的批次扩展信息,所述批次扩展信息包括所述待调度的业务流水批次对应的多条待处理业务流水中任一条业务流水的主键信息。
在一实施例中,所述业务处理模块34可以具体用于:
遍历所述批次扩展信息中的主键信息,针对遍历到的任一主键信息进行如下处理:
根据遍历到的主键信息获取待处理业务流水;
针对所获取到的待处理业务流水执行所述业务流水完结条件扩展。
在一实施例中,所述装置还可以包括(图3中未示出):
第二加载模块,用于加载并执行预先设置的所有业务流水完结状态检查扩展,所述所有业务流水完结状态检查扩展用于判断针对所述多条待处理业务流水的业务处理过程是否均已完结;
第三加载模块,用于若获取到用于表示针对所述多条待处理业务流水的业务处理过程均已完结的执行结果,则加载并执行预先设置的业务汇总处理扩展,所述业务汇总处理扩展用于指示执行下一业务处理过程。
可以理解的是,获取模块31、第一加载模块32,以及业务处理模块33作为三种功能独立的模块,既可以如图3所示同时配置在装置中,也可以分别单独配置在装置中,因此图3所示的结构不应理解为对本说明书实施例方案的限定。
此外,上述装置中各个模块的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
本说明书实施例还提供一种计算机设备,其至少包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,处理器执行所述程序时实现前述的业务流水批量处理方法。该方法至少包括:获取待调度的业务流水批次,所述业务流水批次对应多条待处理业务流水;当接收到用于指示对所述业务流水批次进行批处理的触发指令时,加载预先设置的业务流水完结条件扩展,所述业务流水完结条件扩展用于判断针对待处理业务流水的业务处理过程是否已完结;针对所述业务流水批次对应的多条待处理业务流水中的任一待处理业务流水,执行所述业务流水完结条件扩展;若获取到用于表示针对所述待处理业务流水的业务处理过程未完结的执行结果,则针对所述待处理业务流水进行业务处理。
图4示出了本说明书实施例所提供的一种更为具体的计算设备硬件结构示意图,该设备可以包括:处理器410、存储器420、输入/输出接口430、通信接口440和总线450。其中处理器410、存储器420、输入/输出接口430和通信接口440通过总线450实现彼此之间在设备内部的通信连接。
处理器410可以采用通用的CPU(Central Processing Unit,中央处理器)、微处理器、应用专用集成电路(Application Specific Integrated Circuit,ASIC)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本说明书实施例所提供的技术方案。
存储器420可以采用ROM(Read Only Memory,只读存储器)、RAM(Random AccessMemory,随机存取存储器)、静态存储设备,动态存储设备等形式实现。存储器420可以存储操作系统和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器420中,并由处理器410来调用执行。
输入/输出接口430用于连接输入/输出模块,以实现信息输入及输出。输入输出/模块可以作为组件配置在设备中(图中未示出),也可以外接于设备以提供相应功能。其中输入设备可以包括键盘、鼠标、触摸屏、麦克风、各类传感器等,输出设备可以包括显示器、扬声器、振动器、指示灯等。
通信接口440用于连接通信模块(图中未示出),以实现本设备与其他设备的通信交互。其中通信模块可以通过有线方式(例如USB、网线等)实现通信,也可以通过无线方式(例如移动网络、WIFI、蓝牙等)实现通信。
总线450包括一通路,在设备的各个组件(例如处理器410、存储器420、输入/输出接口430和通信接口440)之间传输信息。
需要说明的是,尽管上述设备仅示出了处理器410、存储器420、输入/输出接口430、通信接口440以及总线450,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本说明书实施例方案所必需的组件,而不必包含图中所示的全部组件。
本说明书实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现前述的业务流水批量处理方法。该方法至少包括:获取待调度的业务流水批次,所述业务流水批次对应多条待处理业务流水;当接收到用于指示对所述业务流水批次进行批处理的触发指令时,加载预先设置的业务流水完结条件扩展,所述业务流水完结条件扩展用于判断针对待处理业务流水的业务处理过程是否已完结;针对所述业务流水批次对应的多条待处理业务流水中的任一待处理业务流水,执行所述业务流水完结条件扩展;若获取到用于表示针对所述待处理业务流水的业务处理过程未完结的执行结果,则针对所述待处理业务流水进行业务处理。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本说明书实施例可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本说明书实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本说明书实施例各个实施例或者实施例的某些部分所述的方法。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,在实施本说明书实施例方案时可以把各模块的功能在同一个或多个软件和/或硬件中实现。也可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述仅是本说明书实施例的具体实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本说明书实施例原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本说明书实施例的保护范围。