CN114168329A - 分布式跑批优化方法、电子设备以及计算机可读存储介质 - Google Patents
分布式跑批优化方法、电子设备以及计算机可读存储介质 Download PDFInfo
- Publication number
- CN114168329A CN114168329A CN202111479939.7A CN202111479939A CN114168329A CN 114168329 A CN114168329 A CN 114168329A CN 202111479939 A CN202111479939 A CN 202111479939A CN 114168329 A CN114168329 A CN 114168329A
- Authority
- CN
- China
- Prior art keywords
- subtask
- batch
- distributed
- pulling
- thread
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 73
- 238000005457 optimization Methods 0.000 title claims abstract description 55
- 238000003860 storage Methods 0.000 title claims abstract description 21
- 238000011156 evaluation Methods 0.000 claims description 15
- 238000012545 processing Methods 0.000 claims description 5
- 230000001419 dependent effect Effects 0.000 claims description 3
- 238000013210 evaluation model Methods 0.000 claims description 3
- 230000008569 process Effects 0.000 description 14
- 238000004590 computer program Methods 0.000 description 13
- 238000010586 diagram Methods 0.000 description 13
- 238000005516 engineering process Methods 0.000 description 8
- 238000011835 investigation Methods 0.000 description 8
- 230000009286 beneficial effect Effects 0.000 description 7
- 230000006870 function Effects 0.000 description 5
- DASQIKOOFDJYKA-UHFFFAOYSA-N CCIF Chemical compound CCIF DASQIKOOFDJYKA-UHFFFAOYSA-N 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 238000009826 distribution Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000007547 defect Effects 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000008520 organization Effects 0.000 description 2
- 229920006395 saturated elastomer Polymers 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 241000699670 Mus sp. Species 0.000 description 1
- 238000010923 batch production Methods 0.000 description 1
- 230000008014 freezing Effects 0.000 description 1
- 238000007710 freezing Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000004064 recycling Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/505—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/03—Credit; Loans; Processing thereof
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- General Engineering & Computer Science (AREA)
- Development Economics (AREA)
- General Business, Economics & Management (AREA)
- Technology Law (AREA)
- Strategic Management (AREA)
- Marketing (AREA)
- Economics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请公开了分布式跑批优化方法、电子设备以及计算机可读存储介质,所述分布式跑批优化方法包括:在预设跑批任务中确定第一层次业务逻辑上的第一层跑批子任务,确定各分布式机器对应的第一拉取线程;通过各第一拉取线程分别为对应的分布式机器轮询拉取第一子任务消息进行消费,得到第一子任务消息对应的执行结果;判断第一层次业务逻辑上的跑批子任务是否均执行完毕;若均执行完毕,则确定第二层次业务逻辑上依赖于第一层跑批子任务的第二层跑批子任务;确定各分布式机器对应的第二拉取线程,通过各第二拉取线程分别为对应的分布式机器轮询拉取所述执行结果进行消费,以进行分布式跑批。本申请解决了现有技术中分布式跑批效率低的技术问题。
Description
技术领域
本申请涉及金融科技(Fintech)的计算机技术领域,尤其涉及一种分布式跑批优化方法、电子设备以及计算机可读存储介质。
背景技术
随着金融科技,尤其是互联网科技金融的不断发展,越来越多的技术(如分布式、区块链等)应用在金融领域,但金融业也对技术提出了更高的要求,如对金融业对应待办事项的分发也有更高的要求。
随着计算机软件的不断发展,计算机技术的应用也越来越广泛,在银行金融贷款的场景下,为进行贷后的风控,通常需要每过一段时间则执行一次贷后风险预警跑批任务,以进行风控,目前当用户数据的量级较大时,通常将用户数据均衡划分至不同分布式机器进行跑批,以实现分布式跑批,但是,由于不同分布式机器的机器资源存在差异性,且不同用户数据之间数据量大小也存在差异性,常会存在各分布式机器的负载不均衡的情况,进而影响分布式跑批的效率。
发明内容
本申请的主要目的在于提供一种分布式跑批优化方法、电子设备以及计算机可读存储介质,旨在解决现有技术中分布式跑批效率低的技术问题。
为实现上述目的,本申请提供一种分布式跑批优化方法,所述分布式跑批优化方法包括:
在预设跑批任务中确定第一层次业务逻辑上的第一层跑批子任务,确定各分布式机器对应的第一拉取线程;
通过各所述第一拉取线程分别为对应的分布式机器轮询拉取所述第一层跑批子任务对应的第一子任务消息进行消费,得到所述第一子任务消息对应的执行结果;
判断所述第一层次业务逻辑上的跑批子任务是否均执行完毕;
若均执行完毕,则确定第二层次业务逻辑上依赖于所述第一层跑批子任务的第二层跑批子任务;
确定各所述分布式机器对应的第二拉取线程,通过各所述第二拉取线程分别为对应的分布式机器轮询拉取所述第二层跑批子任务对应的执行结果进行消费,以进行分布式跑批。
本申请还提供一种分布式跑批优化装置,所述分布式跑批优化装置包括:
第一确定模块,用于在预设跑批任务中确定第一层次业务逻辑上的第一层跑批子任务,确定各分布式机器对应的第一拉取线程;
第一轮询消费模块,用于通过各所述第一拉取线程分别为对应的分布式机器轮询拉取所述第一层跑批子任务对应的第一子任务消息进行消费,得到所述第一子任务消息对应的执行结果;
判断模块,用于判断所述第一层次业务逻辑上的跑批子任务是否均执行完毕;
第二确定模块,用于若均执行完毕,则确定第二层次业务逻辑上依赖于所述第一层跑批子任务的第二层跑批子任务;
第二轮询消费模块,用于确定各所述分布式机器对应的第二拉取线程,通过各所述第二拉取线程分别为对应的分布式机器轮询拉取所述第二层跑批子任务对应的执行结果进行消费,以进行分布式跑批。
本申请还提供一种电子设备,所述电子设备包括:存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的所述分布式跑批优化方法的程序,所述分布式跑批优化方法的程序被处理器执行时可实现如上述的分布式跑批优化方法的步骤。
本申请还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有实现分布式跑批优化方法的程序,所述分布式跑批优化方法的程序被处理器执行时实现如上述的分布式跑批优化方法的步骤。
本申请还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上述的分布式跑批优化方法的步骤。
本申请提供了一种分布式跑批优化方法、电子设备以及计算机可读存储介质,相比于现有技术中采用的将用户数据均衡划分至不同分布式机器进行跑批,以实现分布式跑批的技术手段,本申请首先在预设跑批任务中确定第一层次业务逻辑上的第一层跑批子任务,确定各分布式机器对应的第一拉取线程;通过各所述第一拉取线程分别为对应的分布式机器轮询拉取所述第一层跑批子任务对应的第一子任务消息进行消费,得到所述第一子任务消息对应的执行结果;判断所述第一层次业务逻辑上的跑批子任务是否均执行完毕;若均执行完毕,则确定第二层次业务逻辑上依赖于所述第一层跑批子任务的第二层跑批子任务;确定各所述分布式机器对应的第二拉取线程,通过各所述第二拉取线程分别为对应的分布式机器轮询拉取所述第二层跑批子任务对应的执行结果进行消费,以进行分布式跑批。本申请根据跑批子任务之间在业务逻辑上的依赖关系,将批量的颗粒度细分至子任务级别,而由于单个子任务的数据量大小远小于单个用户对应的数据量大小,所以子任务所需要的运算时间较小,不同分布式设备消费不同子任务消息的消耗时间差距较小,进而由拉取线程将子任务消息轮询拉取至各分布式机器中进行消费,其中,每当拉取的子任务消息被消费完毕后,即可再次拉取子服务消息,所以实现了将量级较大的批量拆分为小批量连续进行跑批的目的,可减少用户数据的数据量大小之间的差异性对跑批效率的影响,同时不同分布式机器的机器资源之间的差异性也只会对小批量产生影响,而小批量进行跑批时各分布式机器之间跑批消耗时间的差异对于整个跑批任务来说基本可以忽略不计,所以克服了现有技术中由于不同分布式机器的机器资源存在差异性,且不同用户数据之间数据量大小也存在差异性,常会存在各分布式机器的负载不均衡的情况,进而影响分布式跑批的效率的技术缺陷,所以提升了分布式跑批的效率。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请分布式跑批优化方法第一实施例的流程示意图;
图2为本申请分布式跑批优化方法第二实施例的流程示意图;
图3为本申请分布式跑批优化方法第三实施例的流程示意图;
图4为本申请分布式跑批优化方法中分布式跑批的系统架构图;
图5为本申请分布式跑批优化方法中各跑批子任务之间的依赖关系图;
图6为本申请实施例中分布式跑批优化方法涉及的硬件运行环境的设备结构示意图。
本申请目的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其它实施例,均属于本发明保护的范围。
实施例一
在银行金融贷款的场景下,为进行贷后的风控,通常需要每过一段时间则执行一次贷后风险预警跑批任务,以进行风控。而在批量的量级较大时,通常以分布式的方式进行跑批,例如,将用户数据均衡划分至不同分布式机器进行跑批,但是由于跑批过程中,需要通过执行对用户进行多角度的风控评估,原始的用户数据的特征越多,则通常需要进行的跑批子任务越多,跑批子任务的数量将会放大不同特征的用户数据在跑批过程中所需的运算时间,所以由于归属于不同用户的用户数据的数据量大小之间的差异性,即使将用户数据均衡划分至不同分布式机器进行跑批,各分布式机器所需运算时间以及计算资源均会存在较大的差异,使得各分布式机器负载不均衡。且不同分布式机器的机器资源存在差异性,在一些极端情况下(较少机器资源的分布式机器分配到的计算任务最多),将会进一步加剧各分布式机器负载不均衡的问题,进而影响分布式跑批的效率。
本申请实施例提供一种分布式跑批优化方法,在本申请分布式跑批优化方法的第一实施例中,参照图1,所述分布式跑批优化方法包括:
步骤S10,在预设跑批任务中确定第一层次业务逻辑上的第一层跑批子任务,确定各分布式机器对应的第一拉取线程;
步骤S20,通过各所述第一拉取线程分别为对应的分布式机器轮询拉取所述第一层跑批子任务对应的第一子任务消息进行消费,得到所述第一子任务消息对应的执行结果;
步骤S30,判断所述第一层次业务逻辑上的跑批子任务是否均执行完毕;
步骤S40,若均执行完毕,则确定第二层次业务逻辑上依赖于所述第一层跑批子任务的第二层跑批子任务;
步骤S50,确定各所述分布式机器对应的第二拉取线程,通过各所述第二拉取线程分别为对应的分布式机器轮询拉取所述第二层跑批子任务对应的执行结果进行消费,以进行分布式跑批。
本申请实施例提供了一种分布式跑批优化方法,也即在预设跑批任务中确定第一层次业务逻辑上的第一层跑批子任务,确定各分布式机器对应的第一拉取线程;通过各所述第一拉取线程分别为对应的分布式机器轮询拉取所述第一层跑批子任务对应的第一子任务消息进行消费,得到所述第一子任务消息对应的执行结果;判断所述第一层次业务逻辑上的跑批子任务是否均执行完毕;若均执行完毕,则确定第二层次业务逻辑上依赖于所述第一层跑批子任务的第二层跑批子任务;确定各所述分布式机器对应的第二拉取线程,通过各所述第二拉取线程分别为对应的分布式机器轮询拉取所述第二层跑批子任务对应的执行结果进行消费,以进行分布式跑批。其中,在整个分布式跑批过程中将跑批子任务按业务逻辑层次进行划分,得到各个业务逻辑层次的跑批子任务,进而通过各分布式机器的拉取线程,按照业务逻辑层次的先后顺序,以轮询的方式拉取子任务消息至分布式机器进行消费,使得各分布式机器可以实现流水线作业,可避免不同分布式机器的机器资源之间的差异对分布式跑批的影响,提升了分布式跑批的效率。在各分布式机器进行流水线作业的基础上,仅仅是最后一批拉取的子任务消息的数据量大小会对各分布式机器的运算时间产生影响,而本申请实施例中将批量的颗粒度细分至子任务级别,由于单个子任务消息的数据量大小远小于单个用户数据的数据量大小,所以子任务消息所需要的运算时间较小,不同分布式设备消费不同子任务消息的消耗时间的差距将极小,所以各分布式机器之间进行跑批的消耗时间之间的差异对于整个跑批任务来说基本可以忽略不计,所以各分布式机器基本上会同时共同完成分布式跑批,实现了各分布式机器的负载合理分配,所以提升了分布式跑批的效率。
在本实施例中,需要说明的是,所述预设跑批任务可以为银行的风控任务,所述预设跑批任务至少包括一跑批子任务,第二层次业务逻辑上的第二层跑批子任务依赖于第一层跑批子任务,具体原因可以为第二层跑批子任务的入参为第一层跑批子任务的执行结果。本申请实施例按照业务逻辑的层次,确定预设跑批任务中各跑批子任务之间的依赖关系,将各跑批子任务划分为不同层次业务逻辑的跑批子任务。各分布式机器为跑批过程中的任务执行节点。
示例性的,步骤S10至步骤S50包括:
在预设跑批任务中确定第一层次业务逻辑上的第一层跑批子任务后;确定各分布式机器对应的第一拉取线程,并将所述第一层跑批子任务对应的子任务消息标签添加至预设消息队列;通过各所述第一拉取线程分别向预设消息队列轮询获取子任务消息标签,分别为各所述第一拉取线程对应的分布式机器拉取子任务消息标签对应的第一子任务消息进行消费,得到各第一子任务消息对应的执行结果,将各第一子任务消息的任务执行情况保存至预设任务执行情况表;判断所述第一层次业务逻辑上的跑批子任务是否均执行完毕,若所述第一层次业务逻辑上的跑批子任务未均执行完毕,则继续执行所述第一层次业务逻辑上的跑批子任务,直至所述第一层次业务逻辑上的跑批子任务均执行完毕;若所述第一层次业务逻辑上的跑批子任务均执行完毕,则在预设跑批任务中确定第二层次业务逻辑上依赖于所述第一层跑批子任务的第二层跑批子任务;确定各分布式机器对应的第二拉取线程,并将所述第二层跑批子任务对应的流水号添加至预设消息队列,其中,所述流水号标识一个用户数据在跑批过程的流水线作业过程,依据流水号可在预设任务执行情况表中查询对应的第一子任务消息的执行结果;通过各所述第二拉取线程分别向预设消息队列轮询获取流水号,分别为各所述第二拉取线程对应的分布式机器拉取流水号对应的执行结果进行消费,得到各第二子任务消息对应的执行结果;判断所述第二层次业务逻辑是否为最后一层业务逻辑,若是,则证明已完成预设跑批任务,若否,则在预设跑批任务中确定依赖于所述第二层跑批子任务的下一层次业务逻辑上的下一跑批子任务,并执行下一跑批子任务,直至最后一层业务逻辑上的跑批子任务被执行完毕。其中,执行下一跑批子任务的具体实现方式可参照上述第二层跑批子任务的执行过程,在此不再赘述。
作为一种示例,所述在预设跑批任务中确定第一层次业务逻辑上的第一层跑批子任务的步骤包括:
当检测到到达预设跑批任务的执行节点时,通过查询预设跑批任务配置表,确定第一层次业务逻辑上的第一层跑批子任务。其中,所述子任务消息标签可以为用户唯一身份编码,例如CCIF号(对公客户号)等。
作为一种示例,所述预设跑批任务配置表包括预设跑批任务中的具体子任务以及各具体子任务之间的依赖关系等字段。所述具体子任务可以为第一层跑批子任务或者第二层跑批子任务等。
作为一种示例,所述预设任务执行情况表为用于记录预设跑批任务的任务执行情况的表,具体可以包括流水号、具体子任务的入参以及执行结果以及CCIF号等。例如,假设具体子任务为模型评分,则预设任务执行情况表将记录评分模型的入参以及评分模型的输出结果,假设具体子任务为个人黑名单检测,则预设任务执行情况表将记录个人黑名单检测的输入以及输出。
另外,需要说明的是,由于跑批子任务之间存在依赖关系,一些跑批子任务通常需要依赖于上一层次的跑批子任务的执行结果进行执行,进而本申请实施例中将各跑批子任务在业务逻辑层次上进行了划分,使得各跑批子任务可以按照业务逻辑层次依序进行,而不会出现在执行跑批子任务时,由于缺少上一层次的跑批子任务的执行结果造成一些跑批子任务中断等待的情况,使得各跑批子任务可以更加有序地被执行,进而形成流水线作业,所以提升了分布式跑批的效率。
其中,在步骤S10中,所述确定各分布式机器对应的第一拉取线程的步骤包括:
步骤S11,获取所述分布式机器对应的地址信息和所述第一层跑批子任务对应的批次信息;
步骤S12,依据所述地址信息和所述批次信息,在预设拉取线程创建表中查询对应的拉取线程;
步骤S13,若查询失败,则创建所述第一拉取线程,并将所述第一拉取线程保存至所述预设拉取线程创建表;
步骤S14,若查询成功,则将查询得到的拉取线程作为所述第一拉取线程。
在本实施例中,需要说明的是,所述预设拉取线程创建表为用于创建或者查询拉取线程的表,具体可以包括批量名称、执行批次、子任务标识、分布式机器的地址信息以及创建时间字段等,其中,批量名称为预设跑批任务对应的待跑批的批量的名称,执行批次为依据业务逻辑层次确定的批次,例如第一层次业务逻辑的执行批次为第一批,第二层次业务逻辑的执行批次为第二批等,子任务标识为子任务的身份标识,分布式机器的地址信息可以为分布式机器的ip地址。
示例性的,步骤S11至步骤S14包括:
获取所述分布式机器对应的ip地址和所述第一层跑批子任务对应的批次信息,其中,所述批次信息可以为执行批次;以所述地址信息和所述批次信息为索引,在预设拉取线程创建表中查询是否存在对应的拉取线程;若在预设拉取线程创建表中存在ip地址和执行批次共同对应的拉取线程,则将查询得到的拉取线程作为第一拉取线程;若在预设拉取线程创建表中不存在ip地址和执行批次共同对应的拉取线程,则创建新的拉取线程作为第一拉取线程,并将所述第一拉取线程以及对应的拉取线程信息保存至所述预设拉取线程创建表。其中,所述拉取线程信息包括批量名称、执行批次、子任务标识以及对应的分布式机器的ip地址等信息。
其中,在步骤S30中,所述判断所述第一层次业务逻辑上的跑批子任务是否均执行完毕的步骤包括:
步骤S31,判断所述第一层跑批子任务是否存在未执行完成的平行子任务;
步骤S32,若存在,则判定所述第一层次业务逻辑上的跑批子任务未均执行完毕;
步骤S33,若不存在,则判定所述第一层次业务逻辑上的跑批子任务均执行完毕。
在本实施例中,需要说明的是,所述平行子任务为与所述第一层跑批子任务处于同一层次业务逻辑。
示例性的,步骤S31至步骤S33包括:
在预设任务执行情况表中查询所述第一层跑批子任务是否存在对应的平行子任务;若所述第一层跑批子任务不存在对应的平行子任务,则判定所述第一层次业务逻辑上的跑批子任务均执行完毕;若所述第一层跑批子任务存在对应的平行子任务,则获取所述预设任务执行情况表中记录的平行子任务的任务执行情况,根据任务执行情况确定平行子任务是否执行完毕,若平行子任务执行完毕,则判定所述第一层次业务逻辑上的跑批子任务均执行完毕,若平行子任务未执行完毕,则判定所述第一层次业务逻辑上的跑批子任务未均执行完毕。
其中,在步骤S40中,所述确定第二层次业务逻辑上依赖于所述第一层跑批子任务的第二层跑批子任务的步骤包括:
步骤S41,在预设跑批任务配置表中查询所述第一层跑批子任务对应的依赖关系字段;
步骤S42,依据所述依赖关系字段,在所述预设跑批任务配置表中查询所述第二层次业务逻辑上的第二层跑批子任务。
在本实施例中,需要说明的是,所述依赖关系字段中存储这所述第一层跑批子任务对应的依赖关系信息,该依赖关系信息可以为依赖关系标签,例如,假设依赖关系标签为(a,b),其中,a为第一层跑批子任务的子任务标识,b为第二层跑批子任务的子任务标识,依赖关系标签(a,b)则表示第二层跑批子任务依赖于第一层跑批子任务。
示例性的,步骤S41至步骤S42包括;
在预设跑批任务配置表中查询所述第一层跑批子任务对应的依赖关系字段;依据所述依赖关系字段中依赖关系标签,确定依赖于所述第一层跑批子任务的依赖子任务标识;在所述预设跑批任务配置表中查询所述依赖子任务标识对应的跑批子任务,将查询得到的跑批子任务作为第二层次业务逻辑上的第二层跑批子任务。
本申请实施例提供了一种分布式跑批优化方法,相比于现有技术中采用的将用户数据均衡划分至不同分布式机器进行跑批,以实现分布式跑批的技术手段,本申请实施例首先在预设跑批任务中确定第一层次业务逻辑上的第一层跑批子任务,确定各分布式机器对应的第一拉取线程;通过各所述第一拉取线程分别为对应的分布式机器轮询拉取所述第一层跑批子任务对应的第一子任务消息进行消费,得到所述第一子任务消息对应的执行结果;判断所述第一层次业务逻辑上的跑批子任务是否均执行完毕;若均执行完毕,则确定第二层次业务逻辑上依赖于所述第一层跑批子任务的第二层跑批子任务;确定各所述分布式机器对应的第二拉取线程,通过各所述第二拉取线程分别为对应的分布式机器轮询拉取所述第二层跑批子任务对应的执行结果进行消费,以进行分布式跑批。本申请实施例根据跑批子任务之间在业务逻辑上的依赖关系,将批量的颗粒度细分至子任务级别,而由于单个子任务的数据量大小远小于单个用户对应的数据量大小,所以子任务所需要的运算时间较小,不同分布式设备消费不同子任务消息的消耗时间差距较小,进而由拉取线程将子任务消息轮询拉取至各分布式机器中进行消费,其中,每当拉取的子任务消息被消费完毕后,即可再次拉取子服务消息,所以实现了将量级较大的批量拆分为小批量连续进行跑批的目的,可减少用户数据的数据量大小之间的差异性对跑批效率的影响,同时不同分布式机器的机器资源之间的差异性也只会对小批量产生影响,而小批量进行跑批时各分布式机器之间跑批消耗时间的差异对于整个跑批任务来说基本可以忽略不计,所以克服了现有技术中由于不同分布式机器的机器资源存在差异性,且不同用户数据之间数据量大小也存在差异性,常会存在各分布式机器的负载不均衡的情况,进而影响分布式跑批的效率的技术缺陷,所以提升了分布式跑批的效率。
实施例二
进一步地,参照图2,基于本申请第一实施例,在本申请另一实施例中,与上述实施例一相同或相似的内容,可以参考上文介绍,后续不再赘述。在此基础上,在步骤S20中,所述通过各所述第一拉取线程分别为对应的分布式机器轮询拉取所述第一层跑批子任务对应的第一子任务消息进行消费,得到第一任务执行结果的步骤包括:
步骤S21,通过所述第一拉取线程为对应的分布式机器拉取预设数量的第一子任务消息;
步骤S22,将各所述第一子任务消息提交至所述分布式机器的任务执行线程池,以消费所述第一子任务消息,得到各所述第一子任务消息对应的执行结果;
步骤S23,判断本轮拉取的第一子任务消息是否被消费完毕,若本轮拉取的第一子任务消息被消费完毕,则返回执行步骤:通过所述第一拉取线程为对应的分布式机器拉取预设数量的第一子任务消息。
示例性的,步骤S21至步骤S23包括:
通过所述第一拉取线程向预设消息队列获取预设数量的子任务消息标签,并拉取各所述子任务消息标签对应的第一子任务消息至对应的分布式机器;将各所述第一子任务消息提交至所述分布式机器的任务执行线程池,以供所述任务线程池中的可用线程消费各所述第一子任务消息,得到各所述第一子任务消息对应的执行结果;当经过轮询间隔时间后,判断本轮拉取的第一子任务消息是否被消费完毕,若未被消费完毕,则等待本轮拉取的第一子任务消息被消费完毕,并返回执行步骤:判断本轮拉取的第一子任务消息是否被消费完毕;若被消费完毕,则返回执行步骤:通过所述第一拉取线程为对应的分布式机器拉取预设数量的第一子任务消息,以拉取下一轮的各第一子任务消息,以实现通过拉取线程轮询拉取子任务消息。其中,轮询间隔时间为预先设置轮询过程中的两次拉取子任务消息的间隔时间。
其中,在步骤S22中,所述将各所述第一子任务消息提交至所述分布式机器的任务执行线程池,以消费所述第一子任务消息,得到各所述第一子任务消息对应的执行结果的步骤包括:
步骤S221,判断所述任务执行线程池中是否存在可用线程;
步骤S222,若存在所述可用线程,则将所述第一子任务消息将提交至所述可用线程进行消费,得到所述执行结果;
步骤S223,若不存在所述可用线程,则返回执行步骤:判断所述任务执行线程池中是否存在可用线程。
在本实施例中,需要说明的是,所述分布式机器中将会维护一任务执行线程池,并实时监测任务执行线程池中各任务执行线程的运行状态,一旦存在可用线程,则会将拉取的子任务消息提交至可用线程进行消费,而当不存在可用线程时,则拉取线程会等到本轮拉取的子任务消息被消费完毕后,才会拉取下一轮的子任务消息,进而可实现在保证分布式机器进行饱和的流水线作业的同时,又不会使得分布式机器的负载过高,实现了为分布式机器合理分配负载的目的。
其中,关于步骤S21,在所述通过所述第一拉取线程为对应的分布式机器拉取预设数量的第一子任务消息的步骤之前,所述分布式跑批优化方法还包括:
将子任务消息标签添加至预设消息队列;
在步骤S21中,所述通过所述第一拉取线程为对应的分布式机器拉取预设数量的第一子任务消息的步骤包括:
保证S211,通过所述第一拉取线程从所述预设消息队列处获取预设数量的子任务消息标签;
保证S212,拉取各所述子任务消息标签对应的第一子任务消息至所述分布式机器。
示例性的,步骤S211至步骤S212包括:通过所述第一拉取线程从所述预设消息队列处获取预设数量的子任务消息标签;在预设任务执行情况表中查询各所述子任务消息标签对应的第一子任务消息,并拉取各所述第一子任务消息至所述分布式机器。
本申请实施例提供了一种跑批过程中轮询拉取子任务消息进行消费的方法,也即通过所述第一拉取线程为对应的分布式机器拉取预设数量的第一子任务消息,将各所述第一子任务消息提交至所述分布式机器的任务执行线程池,以消费所述第一子任务消息,得到各所述第一子任务消息对应的执行结果;判断本轮拉取的第一子任务消息是否被消费完毕,若本轮拉取的第一子任务消息被消费完毕,则返回执行步骤:通过所述第一拉取线程为对应的分布式机器拉取预设数量的第一子任务消息。其中,拉取线程并不仅仅时每隔一段时间拉取一次子任务消息,而到达拉取子任务消息的时间点后,会先判断本轮拉取的第一子任务消息是否被消费完毕,若本轮拉取的第一子任务消息被消费完毕,才会拉取下一轮的子任务消息,可防止由于分布式机器资源不够而导致负载分配不合理的情况发生,再者由拉取线程以轮询的方式拉取子任务消息至分布式机器,可在合理分配机器负载的情况下,保证各分布式机器能够进行饱和式的流水式作业,可保证各分布式机器完成跑批任务的时间点一致,可避免一部分分布式机器处于空闲状态来等待其他分布式机器执行任务的情况,所以提升了分布式跑批的效率。
实施例三
进一步地,参照图3,基于本申请第一实施例,在本申请另一实施例中,与上述实施例一相同或相似的内容,可以参考上文介绍,后续不再赘述。在此基础上,在步骤S50中,所述预设跑批任务包括风控跑批任务,所述第一层子任务包括客户跑批记录子任务,所述第二层子任务包括模型入参子任务,所述执行结果包括客户跑批记录,所述确定各所述分布式机器对应的第二拉取线程,通过各所述第二拉取线程分别为对应的分布式机器轮询拉取所述第二层跑批子任务对应的执行结果进行消费,以进行分布式跑批的步骤包括:
步骤S51,确定各所述分布式机器对应的第二拉取线程,通过各所述第二拉取线程分别为对应的分布式机器轮询拉取所述客户跑批记录进行消费,以构建模型入参;
步骤S52,当所述第二层次业务逻辑上的模型入参子任务均执行完毕后,则确定第三层次业务逻辑上依赖于所述模型入参子任务的模型评分子任务,以及各所述分布式机器对应的第三拉取线程;
步骤S53,通过各所述第三拉取线程分别为对应的分布式机器轮询拉取所述模型评分子任务对应的模型入参进行消费,以通过将所述模型入参输入预设评分模型进行模型评分,得到模型评分结果;
步骤S54,当所述第三层次业务逻辑上的模型评分子任务均执行完毕后,则确定第四层次业务逻辑上依赖于所述模型评分子任务的风控处置子任务,以及各所述分布式机器对应的第四拉取线程;
步骤S55,通过各所述第四拉取线程分别为对应的分布式机器轮询拉取所述风控处置子任务对应的模型评分结果进行消费,以通过将所述模型评分结果输入预设风控处置模型进行模型评分,得到处置输出结果;
步骤S56,依据所述处置输出结果,对所述风控跑批任务对应的用户进行风控处置。
在本实施例中,需要说明的是,所述预设跑批任务包括风控跑批任务,用于进行贷后风险预警。所述预设跑批任务包括客户跑批记录子任务、模型入参子任务、模型评分子任务以及模型处置子任务,其中,所述客户跑批记录子任务用于生成客户跑批记录,所述模型入参子任务用于生成评分模型的模型入参,所述模型评分子任务用于依据模型入参对用户进行贷后风险评分,所述模型处置子任务用于依据模型评分结果对用户进行风控处置,风控处置的方式可以为冻结账户以及提前回收贷款等。步骤S51至步骤S56中轮询拉取子任务消息至对应的分布式机器进行消费的具体过程可参照上述步骤S10至步骤S50及其细化步骤中的具体内容,在此不再赘述。
在一种可实施的方式中,参照图4为分布式跑批的系统架构图,其中,Queue1、QueueX以及QueueY为不同业务逻辑层次的跑批子任务对应的预设消息队列,server1、server2以及server3为各分布式机器,1、X以及Y为不同不同业务逻辑层次的跑批子任务对应的子任务消息,分布式机器按照业务逻辑的层次(1-X-Y)进行流水线作业,带箭头的虚线表示拉取线程拉取子任务消息的过程。参照图5为各跑批子任务之间的依赖关系图,其中,“生成客户跑批记录”对应客户跑批记录子任务;“个人黑名单、企业黑名单、逾期情况、个人汇法、企业汇法、工商元素、企业征信、个人征信、税银以及同盾”分别对应个人黑名单子任务、企业黑名单子任务、逾期情况子任务、个人汇法子任务、企业汇法子任务、工商元素子任务、企业征信子任务、个人征信子任务、税银子任务以及同盾子任务,这些子任务均为模型入参子任务;“评分模型”对应模型评分子任务,“处置模型”对应的模型处置子任务。其中,个人黑名单子任务用于根据企业法人的ECIF号(个人客户号)去黑名单系统查询当前法人是否命中个人黑名单,如果命中,则更新命中的日期到预设任务执行情况表,并作为评分模型的模型入参;企业黑名单子任务用于根据企业的CCIF号去黑名单系统查询当前企业是否命中企业黑名单,如果命中,则更新命中的日期到预设任务执行情况表,并作为评分模型的模型入参;逾期情况子任务用于根据当前企业法人的ECIF号当前的所有借据是否存在逾期的情况,如果存在,则记录首次逾期日、最近预期日、最大逾期金额到预设任务执行情况表,并作为评分模型的模型入参;企业汇法子任务主要的是根据当前企业的社会统一信用代码、工商注册号、组织机构代码去我行的汇法系统查询相关的企业汇法记录,并更新汇法记录、汇法预警结果到预设任务执行情况表,并作为评分模型的模型入参;个人汇法子任务用于根据当前企业法人的身份证号码去汇法系统查询个人的汇法记录,并更新个人汇法记录、汇法预警结果到预设任务执行情况表,并作为评分模型的模型入参;企业征信子任务主要是根据企业名称加上社会统一信用代码、工商注册号、组织机构代码中的任意一种去查询企业征信记录,并且把业务需要的相关字段记录在模型入参的字段中;个人征信子任务用于根据法人姓名加上身份证号码去查询个人的征信情况,把业务需要的相关字段记录在模型入参的字段中;工商元素子任务用于根据企业的企业名称、社会统一信用代码、工商注册号中的任意一个去查询企业的工商信息,把业务需要的相关字段记录在模型入参的字段中;税银子任务用于根据企业的纳税人识别号去查询该企业的纳税信息情况,把业务需要的相关指标记录在模型入参的字段中;同盾子任务用于根据法人姓名加上身份证号码去查询法人的同盾信息,把结果记录在模型入参的字段中。上述各个子任务均执行完成后,会更新对应的子任务状态为完成。
本申请实施例提供了一种关于贷后风险预警的分布式跑批方法,其中,在整个分布式跑批过程中,将跑批子任务按业务逻辑层次划分为客户跑批记录子任务、模型入参子任务、模型评分子任务以及模型处置子任务,进而通过各分布式机器的拉取线程,按照业务逻辑层次的先后顺序,以轮询的方式拉取子任务消息至分布式机器进行消费,使得各分布式机器可以实现流水式的贷后风险预警作业,提升了贷后风险预警跑批的效率。
实施例四
本申请实施例还提供一种分布式跑批优化装置,所述分布式跑批优化装置包括:
第一确定模块,用于在预设跑批任务中确定第一层次业务逻辑上的第一层跑批子任务,确定各分布式机器对应的第一拉取线程;
第一轮询消费模块,用于通过各所述第一拉取线程分别为对应的分布式机器轮询拉取所述第一层跑批子任务对应的第一子任务消息进行消费,得到所述第一子任务消息对应的执行结果;
判断模块,用于判断所述第一层次业务逻辑上的跑批子任务是否均执行完毕;
第二确定模块,用于若均执行完毕,则确定第二层次业务逻辑上依赖于所述第一层跑批子任务的第二层跑批子任务;
第二轮询消费模块,用于确定各所述分布式机器对应的第二拉取线程,通过各所述第二拉取线程分别为对应的分布式机器轮询拉取所述第二层跑批子任务对应的执行结果进行消费,以进行分布式跑批。
可选地,所述判断模块还用于:
判断所述第一层跑批子任务是否存在未执行完成的平行子任务;
若存在,则判定所述第一层次业务逻辑上的跑批子任务未均执行完毕;
若不存在,则判定所述第一层次业务逻辑上的跑批子任务均执行完毕。
可选地,所述第一轮询消费模块还用于:
通过所述第一拉取线程为对应的分布式机器拉取预设数量的第一子任务消息;
将各所述第一子任务消息提交至所述分布式机器的任务执行线程池,以消费所述第一子任务消息,得到各所述第一子任务消息对应的执行结果;
判断本轮拉取的第一子任务消息是否被消费完毕,若本轮拉取的第一子任务消息被消费完毕,则返回执行步骤:通过所述第一拉取线程为对应的分布式机器拉取预设数量的第一子任务消息。
可选地,所述第一轮询消费模块还用于:
判断所述任务执行线程池中是否存在可用线程;
若存在所述可用线程,则将所述第一子任务消息将提交至所述可用线程进行消费,得到所述执行结果;
若不存在所述可用线程,则返回执行步骤:判断所述任务执行线程池中是否存在可用线程。
可选地,所述分布式跑批优化装置还用于:
将子任务消息标签添加至预设消息队列;
所述通过所述第一拉取线程为对应的分布式机器拉取预设数量的第一子任务消息的步骤包括:
通过所述第一拉取线程从所述预设消息队列处获取预设数量的子任务消息标签;
拉取各所述子任务消息标签对应的第一子任务消息至所述分布式机器。
可选地,所述第一确定模块还用于:
获取所述分布式机器对应的地址信息和所述第一层跑批子任务对应的批次信息;
依据所述地址信息和所述批次信息,在预设拉取线程创建表中查询对应的拉取线程;
若查询失败,则创建所述第一拉取线程,并将所述第一拉取线程保存至所述预设拉取线程创建表;
若查询成功,则将查询得到的拉取线程作为所述第一拉取线程。
可选地,所述第二确定模块还用于:
在预设跑批任务配置表中查询所述第一层跑批子任务对应的依赖关系字段;
依据所述依赖关系字段,在所述预设跑批任务配置表中查询所述第二层次业务逻辑上的第二层跑批子任务。
可选地,所述预设跑批任务包括风控跑批任务,所述第一层子任务包括客户跑批记录子任务,所述第二层子任务包括模型入参子任务,所述执行结果包括客户跑批记录,所述第二轮询消费模块还用于:
确定各所述分布式机器对应的第二拉取线程,通过各所述第二拉取线程分别为对应的分布式机器轮询拉取所述客户跑批记录进行消费,以构建模型入参;
当所述第二层次业务逻辑上的模型入参子任务均执行完毕后,则确定第三层次业务逻辑上依赖于所述模型入参子任务的模型评分子任务,以及各所述分布式机器对应的第三拉取线程;
通过各所述第三拉取线程分别为对应的分布式机器轮询拉取所述模型评分子任务对应的模型入参进行消费,以通过将所述模型入参输入预设评分模型进行模型评分,得到模型评分结果;
当所述第三层次业务逻辑上的模型评分子任务均执行完毕后,则确定第四层次业务逻辑上依赖于所述模型评分子任务的风控处置子任务,以及各所述分布式机器对应的第四拉取线程;
通过各所述第四拉取线程分别为对应的分布式机器轮询拉取所述风控处置子任务对应的模型评分结果进行消费,以通过将所述模型评分结果输入预设风控处置模型进行模型评分,得到处置输出结果;
依据所述处置输出结果,对所述风控跑批任务对应的用户进行风控处置。
本发明提供的分布式跑批优化装置,采用上述实施例中的分布式跑批优化方法,解决了分布式跑批效率低的技术问题。与现有技术相比,本发明实施例提供的分布式跑批优化装置的有益效果与上述实施例提供的分布式跑批优化方法的有益效果相同,且该分布式跑批优化装置中的其他技术特征与上述实施例方法公开的特征相同,在此不做赘述。
实施例五
本发明实施例提供一种电子设备,电子设备包括:至少一个处理器;以及,与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行上述实施例一中的分布式跑批优化方法。
下面参考图6,其示出了适于用来实现本公开实施例的电子设备的结构示意图。本公开实施例中的电子设备可以包括但不限于诸如移动电话、笔记本电脑、数字广播接收器、PDA(个人数字助理)、PAD(平板电脑)、PMP(便携式多媒体播放器)、车载终端(例如车载导航终端)等等的移动终端以及诸如数字TV、台式计算机等等的固定终端。图6示出的电子设备仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图6所示,电子设备可以包括处理装置(例如中央处理器、图形处理器等),其可以根据存储在只读存储器(ROM)中的程序或者从存储装置加载到随机访问存储器(RAM)中的程序而执行各种适当的动作和处理。在RAM中,还存储有电子设备操作所需的各种程序和数据。处理装置、ROM以及RAM通过总线彼此训练。输入/输出(I/O)接口也连接至总线。
通常,以下系统可以连接至I/O接口:包括例如触摸屏、触摸板、键盘、鼠标、图像传感器、麦克风、加速度计、陀螺仪等的输入装置;包括例如液晶显示器(LCD)、扬声器、振动器等的输出装置;包括例如磁带、硬盘等的存储装置;以及通信装置。通信装置可以允许电子设备与其他设备进行无线或有线通信以交换数据。虽然图中示出了具有各种系统的电子设备,但是应理解的是,并不要求实施或具备所有示出的系统。可以替代地实施或具备更多或更少的系统。
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信装置从网络上被下载和安装,或者从存储装置被安装,或者从ROM被安装。在该计算机程序被处理装置执行时,执行本公开实施例的方法中限定的上述功能。
本发明提供的电子设备,采用上述实施例中的分布式跑批优化方法,解决了分布式跑批效率低的技术问题。与现有技术相比,本发明实施例提供的电子设备的有益效果与上述实施例提供的分布式跑批优化方法的有益效果相同,且该电子设备中的其他技术特征与上述实施例方法公开的特征相同,在此不做赘述。
应当理解,本公开的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式的描述中,具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
实施例六
本实施例提供一种计算机可读存储介质,具有存储在其上的计算机可读程序指令,计算机可读程序指令用于执行上述实施例一中的分布式跑批优化的方法。
本发明实施例提供的计算机可读存储介质例如可以是U盘,但不限于电、磁、光、电磁、红外线、或半导体的系统、系统或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本实施例中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、系统或者器件使用或者与其结合使用。计算机可读存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、RF(射频)等等,或者上述的任意合适的组合。
上述计算机可读存储介质可以是电子设备中所包含的;也可以是单独存在,而未装配入电子设备中。
上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被电子设备执行时,使得电子设备:在预设跑批任务中确定第一层次业务逻辑上的第一层跑批子任务,确定各分布式机器对应的第一拉取线程;通过各所述第一拉取线程分别为对应的分布式机器轮询拉取所述第一层跑批子任务对应的第一子任务消息进行消费,得到所述第一子任务消息对应的执行结果;判断所述第一层次业务逻辑上的跑批子任务是否均执行完毕;若均执行完毕,则确定第二层次业务逻辑上依赖于所述第一层跑批子任务的第二层跑批子任务;确定各所述分布式机器对应的第二拉取线程,通过各所述第二拉取线程分别为对应的分布式机器轮询拉取所述第二层跑批子任务对应的执行结果进行消费,以进行分布式跑批。
可以以一种或多种程序设计语言或其组合来编写用于执行本公开的操作的计算机程序代码,上述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本公开实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。其中,模块的名称在某种情况下并不构成对该单元本身的限定。
本发明提供的计算机可读存储介质,存储有用于执行上述分布式跑批优化方法的计算机可读程序指令,解决了分布式跑批效率低的技术问题。与现有技术相比,本发明实施例提供的计算机可读存储介质的有益效果与上述实施例提供的分布式跑批优化方法的有益效果相同,在此不做赘述。
实施例七
本申请还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上述的分布式跑批优化方法的步骤。
本申请提供的计算机程序产品解决了分布式跑批效率低的技术问题。与现有技术相比,本发明实施例提供的计算机程序产品的有益效果与上述实施例提供的分布式跑批优化方法的有益效果相同,在此不做赘述。
以上仅为本申请的优选实施例,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利处理范围内。
Claims (10)
1.一种分布式跑批优化方法,其特征在于,所述分布式跑批优化方法包括:
在预设跑批任务中确定第一层次业务逻辑上的第一层跑批子任务,确定各分布式机器对应的第一拉取线程;
通过各所述第一拉取线程分别为对应的分布式机器轮询拉取所述第一层跑批子任务对应的第一子任务消息进行消费,得到所述第一子任务消息对应的执行结果;
判断所述第一层次业务逻辑上的跑批子任务是否均执行完毕;
若均执行完毕,则确定第二层次业务逻辑上依赖于所述第一层跑批子任务的第二层跑批子任务;
确定各所述分布式机器对应的第二拉取线程,通过各所述第二拉取线程分别为对应的分布式机器轮询拉取所述第二层跑批子任务对应的执行结果进行消费,以进行分布式跑批。
2.如权利要求1所述分布式跑批优化方法,其特征在于,所述判断所述第一层次业务逻辑上的跑批子任务是否均执行完毕的步骤包括:
判断所述第一层跑批子任务是否存在未执行完成的平行子任务;
若存在,则判定所述第一层次业务逻辑上的跑批子任务未均执行完毕;
若不存在,则判定所述第一层次业务逻辑上的跑批子任务均执行完毕。
3.如权利要求1所述分布式跑批优化方法,其特征在于,所述通过各所述第一拉取线程分别为对应的分布式机器轮询拉取所述第一层跑批子任务对应的第一子任务消息进行消费,得到第一任务执行结果的步骤包括:
通过所述第一拉取线程为对应的分布式机器拉取预设数量的第一子任务消息;
将各所述第一子任务消息提交至所述分布式机器的任务执行线程池,以消费所述第一子任务消息,得到各所述第一子任务消息对应的执行结果;
判断本轮拉取的第一子任务消息是否被消费完毕,若本轮拉取的第一子任务消息被消费完毕,则返回执行步骤:通过所述第一拉取线程为对应的分布式机器拉取预设数量的第一子任务消息。
4.如权利要求3所述分布式跑批优化方法,其特征在于,所述将各所述第一子任务消息提交至所述分布式机器的任务执行线程池,以消费所述第一子任务消息,得到各所述第一子任务消息对应的执行结果的步骤包括:
判断所述任务执行线程池中是否存在可用线程;
若存在所述可用线程,则将所述第一子任务消息将提交至所述可用线程进行消费,得到所述执行结果;
若不存在所述可用线程,则返回执行步骤:判断所述任务执行线程池中是否存在可用线程。
5.如权利要求3所述分布式跑批优化方法,其特征在于,在所述通过所述第一拉取线程为对应的分布式机器拉取预设数量的第一子任务消息的步骤之前,所述分布式跑批优化方法还包括:
将子任务消息标签添加至预设消息队列;
所述通过所述第一拉取线程为对应的分布式机器拉取预设数量的第一子任务消息的步骤包括:
通过所述第一拉取线程从所述预设消息队列处获取预设数量的子任务消息标签;
拉取各所述子任务消息标签对应的第一子任务消息至所述分布式机器。
6.如权利要求1所述分布式跑批优化方法,其特征在于,所述确定各分布式机器对应的第一拉取线程的步骤包括:
获取所述分布式机器对应的地址信息和所述第一层跑批子任务对应的批次信息;
依据所述地址信息和所述批次信息,在预设拉取线程创建表中查询对应的拉取线程;
若查询失败,则创建所述第一拉取线程,并将所述第一拉取线程保存至所述预设拉取线程创建表;
若查询成功,则将查询得到的拉取线程作为所述第一拉取线程。
7.如权利要求1所述分布式跑批优化方法,其特征在于,所述确定第二层次业务逻辑上依赖于所述第一层跑批子任务的第二层跑批子任务的步骤包括:
在预设跑批任务配置表中查询所述第一层跑批子任务对应的依赖关系字段;
依据所述依赖关系字段,在所述预设跑批任务配置表中查询所述第二层次业务逻辑上的第二层跑批子任务。
8.如权利要求1所述分布式跑批优化方法,其特征在于,所述预设跑批任务包括风控跑批任务,所述第一层子任务包括客户跑批记录子任务,所述第二层子任务包括模型入参子任务,所述执行结果包括客户跑批记录,
所述确定各所述分布式机器对应的第二拉取线程,通过各所述第二拉取线程分别为对应的分布式机器轮询拉取所述第二层跑批子任务对应的执行结果进行消费,以进行分布式跑批的步骤包括:
确定各所述分布式机器对应的第二拉取线程,通过各所述第二拉取线程分别为对应的分布式机器轮询拉取所述客户跑批记录进行消费,以构建模型入参;
当所述第二层次业务逻辑上的模型入参子任务均执行完毕后,则确定第三层次业务逻辑上依赖于所述模型入参子任务的模型评分子任务,以及各所述分布式机器对应的第三拉取线程;
通过各所述第三拉取线程分别为对应的分布式机器轮询拉取所述模型评分子任务对应的模型入参进行消费,以通过将所述模型入参输入预设评分模型进行模型评分,得到模型评分结果;
当所述第三层次业务逻辑上的模型评分子任务均执行完毕后,则确定第四层次业务逻辑上依赖于所述模型评分子任务的风控处置子任务,以及各所述分布式机器对应的第四拉取线程;
通过各所述第四拉取线程分别为对应的分布式机器轮询拉取所述风控处置子任务对应的模型评分结果进行消费,以通过将所述模型评分结果输入预设风控处置模型进行模型评分,得到处置输出结果;
依据所述处置输出结果,对所述风控跑批任务对应的用户进行风控处置。
9.一种电子设备,其特征在于,所述电子设备包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1至8中任一项所述的分布式跑批优化方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有实现分布式跑批优化方法的程序,所述实现分布式跑批优化方法的程序被处理器执行以实现如权利要求1至8中任一项所述分布式跑批优化方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111479939.7A CN114168329A (zh) | 2021-12-06 | 2021-12-06 | 分布式跑批优化方法、电子设备以及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111479939.7A CN114168329A (zh) | 2021-12-06 | 2021-12-06 | 分布式跑批优化方法、电子设备以及计算机可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114168329A true CN114168329A (zh) | 2022-03-11 |
Family
ID=80483606
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111479939.7A Pending CN114168329A (zh) | 2021-12-06 | 2021-12-06 | 分布式跑批优化方法、电子设备以及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114168329A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114880125A (zh) * | 2022-05-27 | 2022-08-09 | 平安普惠企业管理有限公司 | 单线程数据读取分发的跑批方法、装置、设备及存储介质 |
-
2021
- 2021-12-06 CN CN202111479939.7A patent/CN114168329A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114880125A (zh) * | 2022-05-27 | 2022-08-09 | 平安普惠企业管理有限公司 | 单线程数据读取分发的跑批方法、装置、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10853154B2 (en) | Orchestration of a sequence of computations by external systems | |
US10146599B2 (en) | System and method for a generic actor system container application | |
US20160098293A1 (en) | System, method, and software for controlled interruption of batch job processing | |
US9098578B2 (en) | Interactive search monitoring in a virtual machine environment | |
US10803411B1 (en) | Enterprise platform deployment | |
US20180276056A1 (en) | Event notification | |
US9594762B2 (en) | Intelligent file management | |
US20150019284A1 (en) | Dynamically modifying business processes based on real-time events | |
US10936192B2 (en) | System and method for event driven storage management | |
CN112258244A (zh) | 确定目标物品所属任务的方法、装置、设备及存储介质 | |
CN115373822A (zh) | 任务调度方法、任务处理方法、装置、电子设备和介质 | |
CN114168329A (zh) | 分布式跑批优化方法、电子设备以及计算机可读存储介质 | |
US11810022B2 (en) | Contact center call volume prediction | |
CN113051279A (zh) | 数据消息的存储方法、存储装置、电子设备及存储介质 | |
US9059992B2 (en) | Distributed mobile enterprise application platform | |
CN114928603A (zh) | 客户端软件的升级方法、装置、电子设备和介质 | |
CN114564292A (zh) | 一种数据的分布式网格化处理方法、装置、设备及介质 | |
CN114201508A (zh) | 数据处理方法、数据处理装置、电子设备和存储介质 | |
CN113762702A (zh) | 工作流部署方法、装置、计算机系统和可读存储介质 | |
CA3119490A1 (en) | Contact center call volume prediction | |
US10102036B2 (en) | Providing additional thread context to assist memory locality | |
CN117193990B (zh) | http接口的调度管理方法、装置、设备及存储介质 | |
US11513862B2 (en) | System and method for state management of devices | |
US20230385113A1 (en) | Progress Monitoring Service | |
CN115484149B (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 |