批处理性能优化方法、装置、计算机设备及存储介质与流程

文档序号:20486612发布日期:2020-04-21 21:43阅读:236来源:国知局
批处理性能优化方法、装置、计算机设备及存储介质与流程

本发明涉及计算机,更具体地说是指批处理性能优化方法、装置、计算机设备及存储介质。



背景技术:

企业信息系统都有着重要的数据批量处理业务,比如对账是典型的批处理业务处理场景,还有贷后业务数据批量处理,也就是系统内存在众多的任务需要进行批量处理。随着业务发展数据越来越庞大,任务批量处理的性能急需优化,基于springbatch框架的批处理提供了多线程方式并行处理,提高性能,springbatch框架是一个大数据量的并行处理框架,通常用于数据的离线迁移和数据处理、主持事务、并发、流程、监控、纵向和横向扩展,提供统一的接口管理和任务管理。

springbatch框架的多线程实际上是对批处理的每个任务作业进行拆分,拆分为多个子步骤对应一个执行上下文executioncontext组装起来,组装过程是查询出对应任务作业所有的批处理数据再组装到执行上下文executioncontext,然后多子步骤在多线程并发处理,但是每个任务作业都需要做拆分逻辑的代码开发,封装性不够好,作业拆分组装执行上下文executioncontext也是需要一定的处理时间,效率低下。

因此,有必要设计一种新的方法,实现对批处理性能优化,提高多线程处理数据的效率。



技术实现要素:

本发明的目的在于克服现有技术的缺陷,提供批处理性能优化方法、装置、计算机设备及存储介质。

为实现上述目的,本发明采用以下技术方案:批处理性能优化方法,包括:

定义存储业务数据对象的任务,以得到待判定任务;

判断所述待判定任务所存储的内容容量是否小于预设临界值;

若所述待判定任务所存储的内容容量不小于预设临界值,则将所述待判定任务内所存储的内容分割为若干个业务数据子对象,以得到目标数据对象;

将目标数据对象组装至多个所述任务中,将所述待判定任务更新为所述任务,并执行所述判断所述待判定任务所存储的内容容量是否小于预设临界值。

其进一步技术方案为:所述判断所述待判定任务所存储的内容容量是否小于预设临界值之后,还包括:

若所述待判定数组容量小于预设临界值,则执行所述待判定任务内所存储的内容。

其进一步技术方案为:所述待判定任务内所存储的内容包括业务数据对象或业务数据子对象。

其进一步技术方案为:所述定义存储业务数据对象的任务,以得到待判定任务,包括:

自定义任务;

对所述任务进行封装用于存储业务数据对象的泛型对象数组,以得到待判定任务。

其进一步技术方案为:所述预设临界值通过业务数据对象的数量以及处理时间设定。

本发明还提供了批处理性能优化装置,包括:

定义单元,用于定义存储业务数据对象的任务,以得到待判定任务;

判断单元,用于判断所述待判定任务所存储的内容容量是否小于预设临界值;

分割单元,用于若所述待判定任务所存储的内容容量不小于预设临界值,则将所述待判定任务内所存储的内容分割为若干个业务数据子对象,以得到目标数据对象;

组装单元,用于将目标数据对象组装至多个所述任务中,将所述待判定任务更新为所述任务,并执行所述判断所述待判定任务所存储的内容容量是否小于预设临界值。

其进一步技术方案为:还包括:

执行单元,用于若所述待判定数组容量小于预设临界值,则执行所述待判定任务内所存储的内容。

其进一步技术方案为:所述定义单元包括:

自定义子单元,用于自定义任务;

封装子单元,用于对所述任务进行封装用于存储业务数据对象的泛型对象数组,以得到待判定任务。

本发明还提供了一种计算机设备,所述计算机设备包括存储器及处理器,所述存储器上存储有计算机程序,所述处理器执行所述计算机程序时实现上述的方法。

本发明还提供了一种存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时可实现上述的方法。

本发明与现有技术相比的有益效果是:本发明通过设定待判定任务以及预设临界值,对于待判定任务内的业务数据对象大小进行判定,当该大小不小于预设临界值时,进行对象拆分并组装至多个任务内,以形成多个待判定任务,并行处理多个待判定任务,以控制线程数达到最佳效率,实现对批处理性能优化,提高多线程处理数据的效率。

下面结合附图和具体实施例对本发明作进一步描述。

附图说明

为了更清楚地说明本发明实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供的批处理性能优化方法的应用场景示意图;

图2为本发明实施例提供的批处理性能优化方法的流程示意图;

图3为本发明实施例提供的批处理性能优化方法的子流程示意图;

图4为本发明实施例提供的批处理性能优化装置的示意性框图;

图5为本发明实施例提供的批处理性能优化装置的定义单元的示意性框图;

图6为本发明实施例提供的计算机设备的示意性框图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。

还应当理解,在此本发明说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本发明。如在本发明说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。

还应当进一步理解,在本发明说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。

请参阅图1和图2,图1为本发明实施例提供的批处理性能优化方法的应用场景示意图。图2为本发明实施例提供的批处理性能优化方法的示意性流程图。该批处理性能优化方法应用于服务器中。该服务器与若干个执行器进行数据交互,服务器进行批处理后,由执行器进行执行任务。

图2是本发明实施例提供的批处理性能优化方法的流程示意图。如图2所示,该方法包括以下步骤s110至s150。

s110、定义存储业务数据对象的任务,以得到待判定任务。

在本实施例中,待判定任务是指用于进行业务数据对象处理的任务。

在一实施例中,请参阅图3,上述的步骤s110可包括步骤s111~s112。

s111、自定义任务。

在本实施例中,该自定义的任务是用于存储业务数据对象的。

s112、对所述任务进行封装用于存储业务数据对象的泛型对象数组,以得到待判定任务。

待判定任务是实现一个自定义任务task,并将该任务封装泛型对象数组以支持不同的业务数据对象,无需复杂的封装并开发过多的代码。

s120、判断所述待判定任务所存储的内容容量是否小于预设临界值。

在本实施例中,所述预设临界值通过业务数据对象的数量以及处理时间设定。

预设临界值是用于界定当前的任务是否还属于大任务,是否需要进一步拆分以实现控制线程数达到最佳的效率。

本实施例是将一个大任务进行拆分成多个小任务,拆到不可拆分时了,也就是小任务的容量已经达到预设临界值,此时则可将拆分后的小任务进行并行处理后,再将处理结果汇总,实现任务的递归,进而达到控制线程数达到最佳效率的目的。

s130、若所述待判定任务所存储的内容容量不小于预设临界值,则将所述待判定任务内所存储的内容分割为若干个业务数据子对象,以得到目标数据对象。

在本实施例中,所述待判定任务内所存储的内容包括业务数据对象或业务数据子对象。

判断待判定任务所存储的内容容量小于预设临界值,若所述待判定任务所存储的内容容量小于预设临界值则执行业务逻辑,若所述待判定任务所存储的内容容量不小于预设临界值,则拆分该待判定任务为2个或者多个,再将这些拆分后的子任务封装到2个任务待判定任务或者多个待判定任务中,然后执行所有新建的待判定任务,也就是说此时的待判定任务不再是单独一个,而是有至少两个,且这些待判定任务并行执行。

s140、将目标数据对象组装至多个所述任务中,将所述待判定任务更新为所述任务,并执行所述判断所述待判定任务所存储的内容容量是否小于预设临界值。

在执行拆分出来的待判定任务后,每次执行过程中,都需要进行容量的判断,只有在当前的待判定任务所存储的内容容量小于预设临界值的情况下,才会驱动执行器执行待判定任务内所存储的内容,否则进入下一轮的任务拆分。在并行处理待判定任务时,所有待判定任务对应多线程并发处理,充分利用cpu资源,性能得到很大的提升,在多核服务器下效果更加明显,从而实现对批处理性能优化,提高多线程处理数据的效率。

s150、若所述待判定数组容量小于预设临界值,则执行所述待判定任务内所存储的内容。

预设临界值是自定义的,该预设临界值是待判定任务是否拆分的判断依据,比如临界值为1000,从一个待判定任务开始执行方法,这个待判定任务下批处理的业务数据对象即对象数组是否小于1000,若待判定任务下批处理的业务数据对象不小于1000,则满足条件执行业务逻辑,由执行器执行该待判定任务。

待判定任务下批处理的业务数据对象不小于1000,则将这个业务数据对象拆分为多个业务数据子对象再分别组装到多个待判定任务里面去,多个待判定任务再并发执行,每个待判定任务执行方法的时候自身待判定任务对应的业务数据子对象又和临界值判断,递归处理,实现基于jdk的工具包forkjointask对批处理的优化,复用性好,所有批处理任务作业均可直接调用,只需要写几行代码,在springbatch框架的多线程需额外的操作来进行多线程的拆分,涉及springbatch一些表的组装;基于forkjoin来实现的,无需额外的操作直接进行多线程处理数据,性能较高。

在本实施例中,临界值根据批处理的数据大小和处理时间自由配置,以控制线程数达到最佳的效率。

上述的批处理性能优化方法,通过设定待判定任务以及预设临界值,对于待判定任务内的业务数据对象大小进行判定,当该大小不小于预设临界值时,进行对象拆分并组装至多个任务内,以形成多个待判定任务,并行处理多个待判定任务,以控制线程数达到最佳效率,实现对批处理性能优化,提高多线程处理数据的效率。

图4是本发明实施例提供的一种批处理性能优化装置300的示意性框图。如图4所示,对应于以上批处理性能优化方法,本发明还提供一种批处理性能优化装置300。该批处理性能优化装置300包括用于执行上述批处理性能优化方法的单元,该装置可以被配置于服务器中。具体地,请参阅图4,该批处理性能优化装置300包括定义单元301、判断单元302、分割单元303以及组装单元304。

定义单元301,用于定义存储业务数据对象的任务,以得到待判定任务;判断单元302,用于判断所述待判定任务所存储的内容容量是否小于预设临界值;分割单元303,用于若所述待判定任务所存储的内容容量不小于预设临界值,则将所述待判定任务内所存储的内容分割为若干个业务数据子对象,以得到目标数据对象;组装单元304,用于将目标数据对象组装至多个所述任务中,将所述待判定任务更新为所述任务,并执行所述判断所述待判定任务所存储的内容容量是否小于预设临界值。

在一实施例中,如图4所示,所述装置还包括:

执行单元305,用于若所述待判定数组容量小于预设临界值,则执行所述待判定任务内所存储的内容。

在一实施例中,如图5所示,所述定义单元301包括自定义子单元3011以及封装子单元3012。

自定义子单元3011,用于自定义任务;封装子单元3012,用于对所述任务进行封装用于存储业务数据对象的泛型对象数组,以得到待判定任务。

需要说明的是,所属领域的技术人员可以清楚地了解到,上述批处理性能优化装置300和各单元的具体实现过程,可以参考前述方法实施例中的相应描述,为了描述的方便和简洁,在此不再赘述。

上述批处理性能优化装置300可以实现为一种计算机程序的形式,该计算机程序可以在如图6所示的计算机设备上运行。

请参阅图6,图6是本申请实施例提供的一种计算机设备的示意性框图。该计算机设备500是服务器,其中。服务器可以是独立的服务器,也可以是多个服务器组成的服务器集群。

参阅图6,该计算机设备500包括通过系统总线501连接的处理器502、存储器和网络接口505,其中,存储器可以包括非易失性存储介质503和内存储器504。

该非易失性存储介质503可存储操作系统5031和计算机程序5032。该计算机程序5032包括程序指令,该程序指令被执行时,可使得处理器502执行一种批处理性能优化方法。

该处理器502用于提供计算和控制能力,以支撑整个计算机设备500的运行。

该内存储器504为非易失性存储介质503中的计算机程序5032的运行提供环境,该计算机程序5032被处理器502执行时,可使得处理器502执行一种批处理性能优化方法。

该网络接口505用于与其它设备进行网络通信。本领域技术人员可以理解,图6中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备500的限定,具体的计算机设备500可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。

其中,所述处理器502用于运行存储在存储器中的计算机程序5032,以实现如下步骤:

定义存储业务数据对象的任务,以得到待判定任务;判断所述待判定任务所存储的内容容量是否小于预设临界值;若所述待判定任务所存储的内容容量不小于预设临界值,则将所述待判定任务内所存储的内容分割为若干个业务数据子对象,以得到目标数据对象;将目标数据对象组装至多个所述任务中,将所述待判定任务更新为所述任务,并执行所述判断所述待判定任务所存储的内容容量是否小于预设临界值。

其中,所述待判定任务内所存储的内容包括业务数据对象或业务数据子对象。

所述预设临界值通过业务数据对象的数量以及处理时间设定。

在一实施例中,处理器502在实现所述判断所述待判定任务所存储的内容容量是否小于预设临界值步骤之后,还实现如下步骤:

若所述待判定数组容量小于预设临界值,则执行所述待判定任务内所存储的内容。

在一实施例中,处理器502在实现所述定义存储业务数据对象的任务,以得到待判定任务步骤时,具体实现如下步骤:

自定义任务;对所述任务进行封装用于存储业务数据对象的泛型对象数组,以得到待判定任务。

应当理解,在本申请实施例中,处理器502可以是中央处理单元(centralprocessingunit,cpu),该处理器502还可以是其他通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现成可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。其中,通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。

本领域普通技术人员可以理解的是实现上述实施例的方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成。该计算机程序包括程序指令,计算机程序可存储于一存储介质中,该存储介质为计算机可读存储介质。该程序指令被该计算机系统中的至少一个处理器执行,以实现上述方法的实施例的流程步骤。

因此,本发明还提供一种存储介质。该存储介质可以为计算机可读存储介质。该存储介质存储有计算机程序,其中该计算机程序被处理器执行时使处理器执行如下步骤:

定义存储业务数据对象的任务,以得到待判定任务;判断所述待判定任务所存储的内容容量是否小于预设临界值;若所述待判定任务所存储的内容容量不小于预设临界值,则将所述待判定任务内所存储的内容分割为若干个业务数据子对象,以得到目标数据对象;将目标数据对象组装至多个所述任务中,将所述待判定任务更新为所述任务,并执行所述判断所述待判定任务所存储的内容容量是否小于预设临界值。

其中,所述待判定任务内所存储的内容包括业务数据对象或业务数据子对象。

所述预设临界值通过业务数据对象的数量以及处理时间设定。

在一实施例中,所述处理器在执行所述计算机程序而实现所述判断所述待判定任务所存储的内容容量是否小于预设临界值步骤之后,还实现如下步骤:

若所述待判定数组容量小于预设临界值,则执行所述待判定任务内所存储的内容。

在一实施例中,所述处理器在执行所述计算机程序而实现所述定义存储业务数据对象的任务,以得到待判定任务步骤时,具体实现如下步骤:

自定义任务;对所述任务进行封装用于存储业务数据对象的泛型对象数组,以得到待判定任务。

所述存储介质可以是u盘、移动硬盘、只读存储器(read-onlymemory,rom)、磁碟或者光盘等各种可以存储程序代码的计算机可读存储介质。

本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的。例如,各个单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。

本发明实施例方法中的步骤可以根据实际需要进行顺序调整、合并和删减。本发明实施例装置中的单元可以根据实际需要进行合并、划分和删减。另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。

该集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,终端,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

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