CN116225662A - 一种任务处理系统以及任务处理方法 - Google Patents
一种任务处理系统以及任务处理方法 Download PDFInfo
- Publication number
- CN116225662A CN116225662A CN202310331860.2A CN202310331860A CN116225662A CN 116225662 A CN116225662 A CN 116225662A CN 202310331860 A CN202310331860 A CN 202310331860A CN 116225662 A CN116225662 A CN 116225662A
- Authority
- CN
- China
- Prior art keywords
- task
- processed
- processing
- service
- tasks
- 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
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/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- 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/04—Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Business, Economics & Management (AREA)
- Finance (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Accounting & Taxation (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Development Economics (AREA)
- Economics (AREA)
- Marketing (AREA)
- Strategic Management (AREA)
- Technology Law (AREA)
- General Business, Economics & Management (AREA)
- Multi Processors (AREA)
Abstract
本申请实施例提供一种任务处理系统以及任务处理方法,该任务处理系统包括设置于任务调度节点的批量调度服务以及设置于任务处理节点的批量处理服务,其中,批量调度服务根据预设的最大执行数来判断是否对该待处理任务进行分发,以及结合预设的最大执行时间来判断是否进行休眠,如此,提升系统批量处理的数据量上限,有效降低批量业务中断的风险;批量处理服务调用配置的单一职责的原子化模块对待处理任务进行处理,通过将各业务逻辑原子化,可以组装和丰富原子化模块来完成新的关联方或业务场景的实现,增强代码的健壮性和可扩展性。
Description
技术领域
本申请涉及金融科技及数据处理技术领域,具体而言,涉及一种任务处理系统以及任务处理方法。
背景技术
随着互联网技术的发展,用户可以在诸如基金公司等资源产品平台来申购或赎回资源产品。其中,用户和资源产品平台之间的交易需通过诸如银行等资源代销平台来实现。目前的资源代销平台的业务逻辑处理的数据量上限不足,存在批量处理业务中断的风险,而且,对接关联方的逻辑代码耦合性太高,难以扩展新的关联方或新的业务场景。
发明内容
本申请实施例的目的在于提供一种任务处理系统以及任务处理方法,旨在解决相关技术中的资源代销平台存在的容易出现批量处理业务中断,并且扩展性不足的问题。
第一方面,本申请实施例提供的一种任务处理系统,包括设置于任务调度节点的批量调度服务,以及设置于任务处理节点的批量处理服务,其中:
所述批量调度服务用于:获取待处理任务,判断当前处理的任务数是否大于预设的最大执行数,若当前处理的任务数大于预设的最大执行数,继续判断任务处理时长是否超过预设的最大执行时间,若判断结果为否,休眠预设时长后,再次判断当前处理的任务数是否大于预设的最大执行数;若当前处理的任务数不大于预设的最大执行数,将所述待处理任务分发至所述任务处理节点;
所述批量处理服务用于:调用配置的单一职责的原子化模块对所述待处理任务进行处理。
在上述实现过程中,任务处理系统包括设置于任务调度节点的批量调度服务以及设置于任务处理节点的批量处理服务,其中,批量调度服务根据预设的最大执行数来判断是否对该待处理任务进行分发,以及结合预设的最大执行时间来判断是否进行休眠,如此,提升系统批量处理的数据量上限,有效降低批量业务中断的风险;批量处理服务调用配置的单一职责的原子化模块对待处理任务进行处理,通过将各业务逻辑原子化,可以组装和丰富原子化模块来完成新的关联方或业务场景的实现,增强代码的健壮性和可扩展性。
进一步地,在一些实施例中,所述批量处理服务还用于:
判断当前时间是否满足任务开始执行时间;
若满足任务开始执行时间,判断所述待处理任务是否配置有前置任务;
若配置有前置任务,检查所述前置任务是否已完成;
对所述待处理任务进行处理的步骤在检查结果为是的情况下执行。
在上述实现过程中,当满足任务开始执行时间,且待处理任务配置有前置任务时,批量处理服务检查该前置任务是否已完成,若已完成,则调用原子化模块对待处理任务进行处理,若未完成,则暂不执行对待处理任务的处理。如此,减少批量处理出错。
进一步地,在一些实施例中,所述批量处理服务还用于:
获取所述待处理任务的任务配置信息,所述任务配置信息包括指示所述任务开始执行时间的信息,指示所述待处理任务是否配置有前置任务的信息以及指示所述待处理任务对应的原子化模块的信息。
在上述实现过程中,通过任务配置信息,批量处理服务可以确定待处理任务是否满足触发时间,是否配置有前置任务,以及调用哪些原子化模块来处理。如此,实现可拔插式配置各项待处理的任务。
进一步地,在一些实施例中,所述批量处理服务还用于:
在对待处理任务进行处理时,若处理失败,判断已预警次数是否超过预设的最大配置次数,若不超过,输出用于指示任务处理失败的预警信息;
若处理成功,判断是否已发送过预警信息,若已发送,则输出系统恢复信息。
在上述实现过程中,通过设置异常预警机制,在保障系统的正常运行的同时,尽量降低输出的预警信息数量。
进一步地,在一些实施例中,还包括:
任务注册服务,用于登记所述待处理任务的流水信息。
在上述实现过程中,通过任务注册服务来登记批量处理服务需要的任务流水,避免遗漏对某项任务的处理。
进一步地,在一些实施例中,所述任务注册服务包括触发登记子服务,所述触发登记子服务用于:
获取登记任务的任务配置信息;
在所述登记任务支持重复处理,或所述登记任务不支持重复处理且当天不存在已登记的任务时,根据所述任务配置信息获取所述登记任务的任务执行日期;
根据所述任务执行日期登记所述待处理任务的流水信息。
在上述实现过程中,实现批量处理服务需要的任务流水的接口触发式登记。
进一步地,在一些实施例中,所述任务注册服务包括自动登记子服务,所述自动登记子服务用于:
获取当天未登记的任务的任务配置信息;
在当前时刻已到任务自动注册时间,且当天属于预设的工作日时,根据所述任务配置信息获取所述任务的任务执行日期;
根据所述任务执行日期登记所述待处理任务的流水信息。
在上述实现过程中,实现批量处理服务需要的任务流水的定时定点自动登记。
进一步地,在一些实施例中,还包括:
分片处理服务,用于在所述批量处理服务对所述待处理任务进行处理之前,根据配置的参数条件,将所述待处理任务拆分为多个分片任务。
在上述实现过程中,将大数据量的待处理任务拆分为多个小数据量的分片任务,有效提升系统处理大数据量的上限。
进一步地,在一些实施例中,所述待处理任务是与资源代销业务相关联的任务,所述参数条件基于以下一种参数或几种参数的组合而确定:
业务码、产品代码、交易账号尾数、分页大小。
在上述实现过程中,利用业务码、产品代码、交易账号尾数、分页大小自由组合成参数条件来对待处理任务进行分片,实现可拔插式配置各项分片任务,有效提升系统处理大批量任务数据的性能。
第二方面,本申请实施例提供的一种任务处理方法,应用于任务调度节点,包括:
获取待处理任务,判断当前处理的任务数是否大于预设的最大执行数;
若当前处理的任务数大于预设的最大执行数,继续判断任务处理时长是否超过预设的最大执行时间,若判断结果为否,休眠预设时长后,再次判断当前处理的任务数是否大于预设的最大执行数;
若当前处理的任务数不大于预设的最大执行数,将所述待处理任务分发至任务处理节点,以使所述任务处理节点调用配置的单一职责的原子化模块对所述待处理任务进行处理。
第三方面,本申请实施例提供的一种电子设备,包括:存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如第二方面所述的方法的步骤。
第四方面,本申请实施例提供的一种计算机可读存储介质,所述计算机可读存储介质上存储有指令,当所述指令在计算机上运行时,使得所述计算机执行如第二方面所述的方法。
第五方面,本申请实施例提供的一种计算机程序产品,所述计算机程序产品在计算机上运行时,使得计算机执行如第二方面所述的方法。
本申请公开的其他特征和优点将在随后的说明书中阐述,或者,部分特征和优点可以从说明书推知或毫无疑义地确定,或者通过实施本申请公开的上述技术即可得知。
为使本申请的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例提供的一种任务处理系统的示意图;
图2为本申请实施例提供的一种批量调度服务的工作流程的示意图;
图3为本申请实施例提供的一种批量主流程处理服务的工作流程的示意图;
图4为本申请实施例提供的一种任务注册服务支持接口触发式登记时的工作流程的示意图;
图5为本申请实施例提供的一种任务注册服务支持定时任务自动登记时的工作流程的示意图;
图6为本申请实施例提供的一种分片任务处理服务的工作流程的示意图;
图7为本申请实施例提供的一种任务处理方法的流程图;
图8为本申请实施例提供的一种电子设备的结构框图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本申请的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
如背景技术记载,相关技术中的资源代销平台存在着容易出现批量处理业务中断,并且扩展性不足的问题。基于此,本申请实施例提供一种任务处理方案,以解决上述问题。
接下来对本申请实施例进行介绍:
如图1所示,图1是本申请实施例提供的一种任务处理系统的示意图,所述任务处理系统11包括设置于任务调度节点12的批量调度服务121,以及设置于任务处理节点13的批量处理服务131。所述批量调度服务121用于:获取待处理任务,判断当前处理中的任务数是否大于预设的最大执行数,若当前处理中的任务数大于预设的最大执行数,继续判断任务处理时长是否超过预设的最大执行时间,若判断结果为否,休眠预设时长后,再次判断当前处理的任务数是否大于预设的最大执行数;若当前处理中的任务数不大于预设的最大执行数,将所述待处理任务分发至所述任务处理节点13;所述批量处理服务131用于:调用配置的单一职责的原子化模块对所述待处理任务进行处理。
本实施例的任务处理系统可以是基于微服务架构的一个系统,其中的任务调度节点和任务处理节点均可以包括一个或多个物理机,也可以包括一个或多个云主机。也就是说,该任务调度节点可以实现为一个机器,也可以实现为一个集群;同样地,该任务处理节点可以实现为一个机器,也可以实现为一个集群。该任务处理系统可以实现为资源代销平台,也就是说,本实施例中提到的待处理任务可以是与资源代销业务相关联的任务,例如,产品方可以将日终交易文件发送至本实施例的任务处理系统,该任务处理系统接收到该日终交易文件后,需获取自身当天向该产品方转入或转出的资源信息进行汇总处理,以得到日终交易反馈文件并反馈至该产品方,以使该产品方能够根据该日终交易反馈文件进行核对清算,这一过程中,获取资源信息进行汇总处理就可以认为是至少一个待处理任务。
上述的批量调度服务和批量处理服务可以认为是该任务处理系统的两种应用组件。其中,该批量调度服务主要用于待处理任务的调度、分发和限流,在实现时,该批量调度服务先获取当天的待处理任务,再根据预设的最大执行数来判断是否对该待处理任务进行分发,以及结合预设的最大执行时间来判断是否进行休眠,以此来提升批量处理的数据量上限。上述的当前处理中的任务数可以是指当前时刻的任务处理节点正在处理的任务的总数,而上述的任务处理时长可以是指任务处理节点在当天执行任务处理的总时长。在当前处理中的任务数不大于预设的最大执行数时,表明任务处理节点处理任务的负载未达到上限,此时对该待处理任务进行分发。在当前处理中的任务数大于预设的最大执行数时,表明任务处理节点处理任务的负载已经达到一定程度,在此情况下,继续判断任务处理时长是否超过预设的最大执行时间;若超过,可以结束分发流程,等待下一个工作时间点再对待处理任务进行分发,减少任务处理节点因处理的任务数过多而导致宕机;若不超过,可以先休眠预设时长,例如休眠5秒,之后再返回判断当前处理中的任务数是否大于预设的最大执行数的步骤,例如,最大执行数是15000,最大执行时间是18000s,若当前处理中的任务数为16000且任务处理时长为16000s,则批量调度服务休眠5s,之后重新判断得当前处理中的任务数为14000,则可以对待处理任务进行分发。如此,提升批量处理的数据量上限,有效降低批量业务中断的风险。
需要说明的是,批量调度服务针对待处理任务的分发,可以是采用诸如轮询法、加权轮询法、加权随机法等负载均衡算法来实现的;另外,上述的最大执行数和最大执行时间可以根据具体场景的需求进行设置,本申请对此不作限制。
还有,批量调度服务所获取的待处理任务是从任务池中查询得到的,考虑到任务池中具有非常多的任务,因此,为了减少查询的数据量,批量调度服务可以在获取待处理任务时,可以是根据划分的维度进行分页获取的,当待处理任务是与资源代销业务相关联的任务时,这里的维度可以是关联方维度,例如,批量调度服务可以以产品方甲的名称作为查询条件,以此进行数据分页查询,从而获取到待处理任务。如此,提升了查询性能,而且,获取相同维度的任务进行批量处理,可以在一定程度提升处理效率。
该批量处理服务主要用于触发各项批量任务,与相关技术中的任务处理方式不同,该批量处理服务是调用配置的单一职责的原子化模块来处理任务的。这里的原子化模块可以是将处理各种业务场景的任务的逻辑进行了切分而得到的一个个“原子化”的模块,这些模块可以组合起来,完成各种业务场景的任务处理。例如,原子化模块1用于累加数据,原子化模块2用于将数据除以当天的日期数,原子化模块2用于将数据除以当天的月份数,则批量处理服务可以基于原子化模块1和原子化模块2的组合来处理计算日均交易数据的任务,也可以基于原子化模块1和原子化模块3的组合来处理计算月均交易数据的任务。在新增关联方或者业务场景时,可以基于现有的原子化模块进行组合,或者填充新的原子化模块即可。如此,实现快速产品交互,增强了代码的健壮性和可扩展性。
在一些实施例中,该批量处理服务还用于:判断当前时间是否满足任务开始执行时间;若满足任务开始执行时间,判断所述待处理任务是否配置有前置任务;若配置有前置任务,检查所述前置任务是否已完成;对所述待处理任务进行处理的步骤在检查结果为是的情况下执行。这里的任务开始执行时间是为待处理任务配置的开始执行时间,若当前时间不满足任务开始执行时间,批量处理服务暂不执行对待处理任务的处理。待处理任务的前置任务是指待处理任务开始或完成所依赖的任务,在实际应用中,只有先完成了前置任务,才具备完成相应任务的资格,因此,当满足任务开始执行时间,且待处理任务配置有前置任务时,批量处理服务检查该前置任务是否已完成,若已完成,则调用原子化模块对待处理任务进行处理,若未完成,则暂不执行对待处理任务的处理。如此,减少批量处理出错。
进一步地,在一些实施例中,该批量处理服务还用于:获取所述待处理任务的任务配置信息,所述任务配置信息包括指示所述任务开始执行时间的信息,指示所述待处理任务是否配置有前置任务的信息以及指示所述待处理任务对应的原子化模块的信息。这里的任务配置信息可以是待处理任务对应的关联方所配置的,也可以是任务处理系统的管理人员所配置的,通过该任务配置信息,批量处理服务可以确定待处理任务是否满足触发时间,是否配置有前置任务,以及调用哪些原子化模块来处理。如此,实现可拔插式配置各项待处理的任务。
还有,该批量处理服务还可以设置有异常预警机制,具体地,在对待处理任务进行处理时,若处理失败,可以判断已预警次数是否超过预设的最大配置次数,若不超过,则输出用于指示任务处理失败的预警信息;若处理成功,可以判断是否已发送过预警信息,若已发送,则输出系统恢复信息。如此,在保障系统的正常运行的同时,尽量降低输出的预警信息数量。
本申请的一些实施例还提供了其他方面的改进,以丰富该任务处理系统的功能。其中,在一些实施例,上述任务处理系统还可以包括:任务注册服务,用于登记所述待处理任务的流水信息。该任务注册服务主要用于登记批量处理服务需要的任务流水。待处理任务的流水信息可以认为是待处理任务的概述记录,批量处理服务在对待处理任务进行处理之前,可以先获取该流水信息,再根据该流水信息进行处理,以避免遗漏对某项任务的处理。
进一步地,该任务注册服务可以包括触发登记子服务,所述触发登记子服务用于:获取登记任务的任务配置信息;在所述登记任务支持重复处理,或所述登记任务不支持重复处理且当天不存在已登记的任务时,根据所述任务配置信息获取所述登记任务的任务执行日期;根据所述任务执行日期登记所述待处理任务的流水信息。这里的登记任务是指前面提到的任务池中的任务,触发登记子服务在登记任务支持重复处理,或不支持重复处理但当天没有已登记的任务时,根据该登记任务的任务配置信息获取该登记任务的任务执行日期,若其任务执行日期是当天,触发登记子服务将该登记任务确定为下一个待处理任务,以此登记流水信息,若其任务执行日期不是当天,触发登记子服务忽略该登记任务。如此,实现批量处理服务需要的任务流水的接口触发式登记。
或者,该任务注册服务可以包括自动登记子服务,所述自动登记子服务用于:获取当天未登记的任务的任务配置信息;在当前时刻满足任务自动注册时间,且当天属于预设的工作日时,根据所述任务配置信息获取所述任务的任务执行日期;根据所述任务执行日期登记所述待处理任务的流水信息。同样地,这里提到的未登记的任务是指任务池中的任务,自动登记子服务在当前时刻任务自动注册时间,且当天属于配置的工作日方案的工作日时,根据该任务的任务配置信息获取该任务的任务执行日期,以此登记待处理任务的流水信息。如此,实现批量处理服务需要的任务流水的定时定点自动登记。
在另外一些实施例中,上述任务处理系统还可以包括:分片处理服务,用于在所述批量处理服务对所述待处理任务进行处理之前,根据配置的参数条件,将所述待处理任务拆分为多个分片任务。该分片处理服务主要用于大批量数据处理。考虑到待处理任务的数据量往往是巨大的,因此,分片处理服务可以根据配置的参数条件分页获取待处理任务的文件数据,并对该文件数据进行加工,从而将大数据量的待处理任务拆分为多个小数据量的分片任务,经千万级的数据量试验发现,其可以有效提升系统处理大数据量的上限。
进一步地,当待处理任务是与资源代销业务相关联的任务时,所述参数条件可以基于以下一种参数或几种参数的组合而确定:业务码、产品代码、交易账号尾数、分页大小。也就是说,在任务处理系统实现为资源代销平台时,分片处理服务可以按业务码、产品代码、交易账号尾数、分页大小的至少一个维度来配置分片任务,其中的交易账号尾数可以根据数据量的大小来控制截取位数,如此,实现可拔插式配置各项分片任务,有效提升系统处理大批量任务数据的性能。
本申请实施例,任务处理系统包括设置于任务调度节点的批量调度服务以及设置于任务处理节点的批量处理服务,其中,批量调度服务根据预设的最大执行数来判断是否对该待处理任务进行分发,以及结合预设的最大执行时间来判断是否进行休眠,如此,提升系统批量处理的数据量上限,有效降低批量业务中断的风险;批量处理服务调用配置的单一职责的原子化模块对待处理任务进行处理,通过将各业务逻辑原子化,可以组装和丰富原子化模块来完成新的关联方或业务场景的实现,增强代码的健壮性和可扩展性。
为了对本申请的方案做更为详细的说明,接下来介绍一具体实施例:
本实施例涉及资源代销平台的文件批量处理场景。在本实施例之前,现有的资源代销平台逐渐凸显出以下问题:业务逻辑处理的数据量上限有限,超过100万数据量时,存在批量处理业务中断的风险;各关联方的逻辑代码耦合度太高,当有一个关联方存在差异需要调整时,都需要对其他关联方进行回归,成本太高;代码的健壮性不够,当关联方需要增加业务场景时,无法通过配置化、零编码的方式实现等等。基于此,本实施例提供一套可配置化、可处理1000万以上的数据量、易扩展的批量处理架构,以解决这些问题。
本实施例的批量处理架构包括批量调度服务、批量主流程处理服务、任务注册服务以及分片任务处理服务,各服务的具体工作流程如下所示:
其中,批量调度服务主要用于待处理的任务的调度、分发、限流;其中最大执行时间可配置,最大并发数可配置;该批量调度服务的工作流程如图2所示,包括:
S201、接收定时任务调用请求;
S202、批量任务计时开始;
S203、获取当天待处理的任务,具体地,可划分维度,分页获取;
S204、判断当前处理中的任务是否大于最大执行数,是则执行S205,否则执行S207;
S205、判断是否超过最大执行时间,是则执行S208,否则执行S206;
S206、休眠5s,之后返回S204;
S207、对待处理的任务进行分发;
S208、结束流程。
批量主流程处理服务主要用于触发各项批量任务,支持配置触发时间、触发异常预警机制、可拔插式配置各项待处理的任务;该任务流程的处理取决于原子实现类的丰富,随着原子实现类的丰富,最终实现对需求零编码接入,该批量主流程处理服务的工作流程如图3所示,包括:
S301、接收批量调度服务触发请求;
S302、获取待处理任务的任务流水和任务配置信息;
S303、判断当前时间是否满足任务开始执行时间,是则执行S304,否则执行313;
S304、判断是否配置前置任务,是则执行S305,否则执行S306;
S305、检查当天执行的前置任务是否已完成,是则执行S306,否则执行S313;
S306、调用配置的原子实现类对待处理任务进行处理;
S307、判断是否处理成功,是则执行S308,否则执行S310;
S308、判断是否已发送过预警短信,是则执行S309,否则执行S313;
S309、发送系统恢复短信;
S310、判断是否配置需要预警,是则执行S311,否则执行S313;
S311、判断已预警次数是否超过配置的最大预警次数,是则执行S313,否则执行S312;
S312、发送指示任务处理失败的预警短信;
S313、结束流程。
任务注册服务主要用于登记批量主流程处理服务需要的任务流水,支持接口触发式登记、定时任务定时定点自动登记,可配置任务自动登记的工作日方案、任务执行的工作日方案、任务执行N值(支持当天触发登记第N天的任务)、任务执行时间、任务注册时间等等。该任务注册服务支持接口触发式登记时的工作流程如图4所示,包括:
S401、接收任务登记请求;
S402、获取登记任务的配置信息;
S403、判断配置的任务信息是否已启用,是则执行S404,否则执行S410;
S404、判断任务是否支持重复处理,是则执行S406,否则执行S405;
S405、判断当天是否有已登记的任务,是则执行S406,否则执行S410;
S406、根据配置信息获取任务执行日期;
S407、根据任务执行日期登记待处理任务的任务流水;
S408、判断是否需要实时调用批量主流程处理服务,是则执行S409,否则执行S410;
S409、调用批量主流程处理服务;
S410、结束流程。
该任务注册服务支持定时任务自动登记时的工作流程如图5所示,包括:
S501、接收自动注册定时任务调用请求;
S502、获取所有当天未注册的任务的配置信息;
S503、确定当天属于哪个工作日方案的工作日;
S504、判断是否已到任务自动注册时间,是则执行S505,否则执行S508;
S505、判断当天是否为配置的工作日方案的工作日,是则执行S506,否则执行S508;
S506、根据配置的执行N值获取任务执行日期;
S507、根据任务执行日期登记待处理任务的任务流水;
S508、结束流程。
分片任务处理服务主要用于大批量数据处理,支持按业务码、产品代码、交易账号尾数(根据数据量的大小可以控制截取位数)、分页大小配置分片任务,支持可拔插式配置各项分片任务。该分片任务处理服务的工作流程如图6所示,包括:
S601、接收批量调度服务任务触发请求;
S602、获取分片任务的配置和待执行流水信息;
S603、根据配置的参数条件分页获取待处理的文件数据;
S604、加工待处理数据;
S605、数据分批落地数据库;
S606、结束流程。
本实施例方案的这一批量处理架构,支持定时自动登记注册服务内部的业务处理任务;支持多线程并发调度任务;支持对不同的任务配置工作日方案、执行时间、前置步骤依赖等等;支持统一维护短信预警的方式和次数,并支持系统恢复后的短信提醒恢复短信;支持分片处理大批量任务数据,提升系统处理大数据量的上限(压力测试按照千万的数据量验证);支持可配置化业务处理场景,将各业务逻辑原子化,实现“可拔插式、组装式”的方式完成业务场景的实现,随着业务逻辑原子化不断丰富,最终实现零编码、快速产品交互。
经试验发现,本实施例方案至少具有以下优点:第一、批量处理的数据量上限得到了较大的提升,并有效地降低了批量中断的风险;第二、随着对接的关联方越多,原子化的内容不断的丰富填充,达到零编码,实现快速产品交互;第三、统一批量处理的底层架构,有效的降低了开发难度,易于后期的维护和扩展;第四、降低关联方的耦合度,对存在差异性的业务场景,易于横向扩展,增强代码的健壮性和可扩展性;第五、统一批量任务的配置方式,支持线上产品上架后,一键启用清算配置。
与前述系统的实施例相对应,本申请还提供任务处理方法及其应用的终端的实施例:
如图7所示,图7是本申请实施例提供的一种任务处理方法的流程图,所述方法包括:
在步骤701、获取待处理任务,判断当前处理的任务数是否大于预设的最大执行数;
在步骤702、若当前处理的任务数大于预设的最大执行数,继续判断任务处理时长是否超过预设的最大执行时间,若判断结果为否,休眠预设时长后,再次判断当前处理的任务数是否大于预设的最大执行数;
在步骤703、若当前处理的任务数不大于预设的最大执行数,将所述待处理任务分发至任务处理节点,以使所述任务处理节点调用配置的单一职责的原子化模块对所述待处理任务进行处理。
上述方法中各个步骤的实现过程具体详见上述系统的相关介绍,在此不再赘述。
本申请还提供一种电子设备,请参见图8,图8为本申请实施例提供的一种电子设备的结构框图。电子设备可以包括处理器810、通信接口820、存储器830和至少一个通信总线840。其中,通信总线840用于实现这些组件直接的连接通信。其中,本申请实施例中电子设备的通信接口820用于与其他节点设备进行信令或数据的通信。处理器810可以是一种集成电路芯片,具有信号的处理能力。
上述的处理器810可以是通用处理器,包括中央处理器(CPU,Central ProcessingUnit)、网络处理器(NP,Network Processor)等;还可以是数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器810也可以是任何常规的处理器等。
存储器830可以是,但不限于,随机存取存储器(RAM,Random Access Memory),只读存储器(ROM,Read Only Memory),可编程只读存储器(PROM,Programmable Read-OnlyMemory),可擦除只读存储器(EPROM,Erasable Programmable Read-Only Memory),电可擦除只读存储器(EEPROM,Electric Erasable Programmable Read-Only Memory)等。存储器830中存储有计算机可读取指令,当所述计算机可读取指令由所述处理器810执行时,电子设备可以执行上述图1方法实施例涉及的各个步骤。
可选地,电子设备还可以包括存储控制器、输入输出单元。
所述存储器830、存储控制器、处理器810、外设接口、输入输出单元各元件相互之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可通过一条或多条通信总线840实现电性连接。所述处理器810用于执行存储器830中存储的可执行模块,例如电子设备包括的软件功能模块或计算机程序。
输入输出单元用于提供给用户创建任务以及为该任务创建启动可选时段或预设执行时间以实现用户与服务器的交互。所述输入输出单元可以是,但不限于,鼠标和键盘等。
可以理解,图8所示的结构仅为示意,所述电子设备还可包括比图8中所示更多或者更少的组件,或者具有与图8所示不同的配置。图8中所示的各组件可以采用硬件、软件或其组合实现。
本申请实施例还提供一种存储介质,所述存储介质上存储有指令,当所述指令在计算机上运行时,所述计算机程序被处理器执行时实现方法实施例所述的方法,为避免重复,此处不再赘述。
本申请还提供一种计算机程序产品,所述计算机程序产品在计算机上运行时,使得计算机执行方法实施例所述的方法。
在本申请所提供的几个实施例中,应该理解到,所揭露的方法,也可以通过其它的方式实现。附图中的流程图和框图显示了根据本申请的多个实施例的方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅为本申请的实施例而已,并不用于限制本申请的保护范围,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应所述以权利要求的保护范围为准。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
Claims (10)
1.一种任务处理系统,其特征在于,包括设置于任务调度节点的批量调度服务,以及设置于任务处理节点的批量处理服务,其中:
所述批量调度服务用于:获取待处理任务,判断当前处理的任务数是否大于预设的最大执行数,若当前处理的任务数大于预设的最大执行数,继续判断任务处理时长是否超过预设的最大执行时间,若判断结果为否,休眠预设时长后,再次判断当前处理的任务数是否大于预设的最大执行数;若当前处理的任务数不大于预设的最大执行数,将所述待处理任务分发至所述任务处理节点;
所述批量处理服务用于:调用配置的单一职责的原子化模块对所述待处理任务进行处理。
2.根据权利要求1所述的系统,其特征在于,所述批量处理服务还用于:
判断当前时间是否满足任务开始执行时间;
若满足任务开始执行时间,判断所述待处理任务是否配置有前置任务;
若配置有前置任务,检查所述前置任务是否已完成;
对所述待处理任务进行处理的步骤在检查结果为是的情况下执行。
3.根据权利要求2所述的系统,其特征在于,所述批量处理服务还用于:
获取所述待处理任务的任务配置信息,所述任务配置信息包括指示所述任务开始执行时间的信息,指示所述待处理任务是否配置有前置任务的信息以及指示所述待处理任务对应的原子化模块的信息。
4.根据权利要求1所述的系统,其特征在于,所述批量处理服务还用于:
在对待处理任务进行处理时,若处理失败,判断已预警次数是否超过预设的最大配置次数,若不超过,输出用于指示任务处理失败的预警信息;
若处理成功,判断是否已发送过预警信息,若已发送,则输出系统恢复信息。
5.根据权利要求1所述的系统,其特征在于,还包括:
任务注册服务,用于登记所述待处理任务的流水信息。
6.根据权利要求5所述的系统,其特征在于,所述任务注册服务包括触发登记子服务,所述触发登记子服务用于:
获取登记任务的任务配置信息;
在所述登记任务支持重复处理,或所述登记任务不支持重复处理且当天不存在已登记的任务时,根据所述任务配置信息获取所述登记任务的任务执行日期;
根据所述任务执行日期登记所述待处理任务的流水信息。
7.根据权利要求5所述的系统,其特征在于,所述任务注册服务包括自动登记子服务,所述自动登记子服务用于:
获取当天未登记的任务的任务配置信息;
在当前时刻已到任务自动注册时间,且当天属于预设的工作日时,根据所述任务配置信息获取所述任务的任务执行日期;
根据所述任务执行日期登记所述待处理任务的流水信息。
8.根据权利要求1所述的系统,其特征在于,还包括:
分片处理服务,用于在所述批量处理服务对所述待处理任务进行处理之前,根据配置的参数条件,将所述待处理任务拆分为多个分片任务。
9.根据权利要求8所述的系统,其特征在于,所述待处理任务是与资源代销业务相关联的任务,所述参数条件基于以下一种参数或几种参数的组合而确定:
业务码、产品代码、交易账号尾数、分页大小。
10.一种任务处理方法,其特征在于,应用于任务调度节点,包括:
获取待处理任务,判断当前处理的任务数是否大于预设的最大执行数;
若当前处理的任务数大于预设的最大执行数,继续判断任务处理时长是否超过预设的最大执行时间,若判断结果为否,休眠预设时长后,再次判断当前处理的任务数是否大于预设的最大执行数;
若当前处理的任务数不大于预设的最大执行数,将所述待处理任务分发至任务处理节点,以使所述任务处理节点调用配置的单一职责的原子化模块对所述待处理任务进行处理。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310331860.2A CN116225662A (zh) | 2023-03-27 | 2023-03-27 | 一种任务处理系统以及任务处理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310331860.2A CN116225662A (zh) | 2023-03-27 | 2023-03-27 | 一种任务处理系统以及任务处理方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116225662A true CN116225662A (zh) | 2023-06-06 |
Family
ID=86584490
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310331860.2A Pending CN116225662A (zh) | 2023-03-27 | 2023-03-27 | 一种任务处理系统以及任务处理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116225662A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117539643A (zh) * | 2024-01-09 | 2024-02-09 | 上海晨钦信息科技服务有限公司 | 信用卡清分清算平台、批量任务处理方法及服务器 |
-
2023
- 2023-03-27 CN CN202310331860.2A patent/CN116225662A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117539643A (zh) * | 2024-01-09 | 2024-02-09 | 上海晨钦信息科技服务有限公司 | 信用卡清分清算平台、批量任务处理方法及服务器 |
CN117539643B (zh) * | 2024-01-09 | 2024-03-29 | 上海晨钦信息科技服务有限公司 | 信用卡清分清算平台、批量任务处理方法及服务器 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10038619B2 (en) | Providing a monitoring service in a cloud-based computing environment | |
CN112882699B (zh) | 基于流程配置引擎的业务处理方法、装置、设备及介质 | |
CN111340340B (zh) | 一种事件处理方法及装置 | |
CN116225662A (zh) | 一种任务处理系统以及任务处理方法 | |
CN108646965B (zh) | 业务线的处理方法、终端设备及介质 | |
US20100211674A1 (en) | Community generation support system, community generation support method, and community generation support program | |
CN116611411A (zh) | 一种业务系统报表生成方法、装置、设备及存储介质 | |
CN104735134A (zh) | 一种用于提供计算服务的方法和装置 | |
CN115879889A (zh) | 基于区块链的业务处理方法、装置和计算机设备 | |
CN112668998B (zh) | 流程实现方法、装置、系统、电子设备和可读存储介质 | |
CN112633855B (zh) | 一种任务提醒方法及计算机设备 | |
CN114723394A (zh) | 基于人工智能的授信流程配置方法及相关设备 | |
CN111652580B (zh) | 一种对节点的数据处理方法及装置 | |
CN113835780A (zh) | 一种事件响应方法及装置 | |
CN111475291A (zh) | 一种数据处理方法、系统、服务器及介质 | |
CN107578297B (zh) | 会员信息聚合方法以及装置 | |
CN111429125A (zh) | 账户管理方法、装置、存储介质及电子设备 | |
CN111401860B (zh) | 拦截件自动留言下发方法及装置、设备及存储介质 | |
CN110554895A (zh) | 一种数据调用的方法和装置 | |
CN116188190B (zh) | 一种高并发支付系统多批次半实时对账方法及系统 | |
CN112950138B (zh) | 协同开发的状态管理方法、装置和服务器 | |
CN115879895B (zh) | 协议准入方法、装置、计算机设备和存储介质 | |
CN115269658A (zh) | 在线询单的数据处理方法、系统以及装置 | |
CN116701003A (zh) | 一种在线财务计费方法、装置、电子设备及存储介质 | |
CN116228146A (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 |