CN111858055B - 任务处理方法、服务器及存储介质 - Google Patents
任务处理方法、服务器及存储介质 Download PDFInfo
- Publication number
- CN111858055B CN111858055B CN202010718737.2A CN202010718737A CN111858055B CN 111858055 B CN111858055 B CN 111858055B CN 202010718737 A CN202010718737 A CN 202010718737A CN 111858055 B CN111858055 B CN 111858055B
- Authority
- CN
- China
- Prior art keywords
- task
- server
- processing
- threads
- data table
- 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.)
- Active
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/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
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
- G06F16/252—Integrating or interfacing systems involving database management systems between a Database Management System and a front-end application
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
一种任务处理方法,包括:接收管理服务器发送的任务执行指令;从远程字典服务redis服务器中获取第一任务号;根据第一任务号,从数据库中获取与第一任务号匹配的第一任务数据;使用预设数量的线程处理第一任务数据;在处理第一任务数据的过程中,监测任务服务器的中央处理器CPU的指标参数;根据指标参数,动态控制处理第一任务数据的线程的实时数量;使用实时数量的线程动态处理第一任务数据;当第一任务数据处理完后,从redis服务器中获取第二任务号,并执行与第二任务号匹配的第二任务数据,直至redis服务器中的任务号被取完。本发明还提供一种服务器及存储介质。本发明能够利用系统资源,提高数据跑批的效率。
Description
技术领域
本发明涉及数据处理技术领域,尤其涉及一种任务处理方法、服务器及存储介质。
背景技术
目前,许多业务都需要执行数据跑批任务,比如计提,计息,日切等业务都在跑批中执行。数据跑批任务需要处理的数据量非常大,对程序的可靠性和性能要求也非常高。
然而,在实际中发现,在执行跑批任务时,有些机器处理完了分片的任务而一直空闲,而其他机器却一直忙于任务的处理。这种情况导致资源得不到合理利用,也造成跑批任务耗时过长。
发明内容
鉴于以上内容,有必要提供一种任务处理方法、服务器及存储介质,能够利用系统资源,提高数据跑批的效率。
本发明的第一方面提供一种任务处理方法,所述方法包括:
接收管理服务器发送的任务执行指令;
从远程字典服务redis服务器中获取第一任务号,其中,所述redis服务器中预先存储有所述管理服务器为待分配任务设置的多个任务号;
根据所述第一任务号,从数据库中获取与所述第一任务号匹配的第一任务数据;
使用预设数量的线程处理所述第一任务数据;
在处理所述第一任务数据的过程中,监测所述任务服务器的中央处理器CPU的指标参数;
根据所述指标参数,动态控制处理所述第一任务数据的线程的实时数量;
使用所述实时数量的线程动态处理所述第一任务数据;
当所述第一任务数据处理完后,从所述redis服务器中获取第二任务号,并执行与所述第二任务号匹配的第二任务数据,直至所述redis服务器中的任务号被取完。
在一种可能的实现方式中,所述指标参数为CPU利用率,所述根据所述指标参数,动态控制处理所述第一任务数据的线程的实时数量包括:
判断所述CPU利用率是否超过预设标准阈值;
若所述CPU利用率未超过预设标准阈值,计算所述预设标准阈值与所述CPU利用率之间的差值;
根据所述CPU利用率以及所述预设数量,计算当前每个所述线程的平均CPU利用率;
根据所述差值以及所述平均CPU利用率,确定需要增加的线程的第一数量;
根据所述第一数量以及所述预设数量,确定处理所述第一任务数据的线程的实时数量。
在一种可能的实现方式中,所述指标参数为CPU负载,所述根据所述指标参数,动态控制处理所述第一任务数据的线程的实时数量包括:
判断所述CPU负载是否超过预设负载阈值;
若所述CPU负载超过预设负载阈值,计算所述CPU负载与所述预设负载阈值之间的差值;
获取每个线程的最大负载值;
根据所述差值以及所述最大负载值,确定需要增加的线程的第二数量;
根据所述第二数量以及所述预设数量,确定处理所述第一任务数据的线程的实时数量。
本发明的第二方面提供一种任务处理方法,应用于管理服务器中,所述方法包括:
获取待分配任务;
对所述待分配任务进行划分,获得多个子任务,并为多个所述子任务设置任务号以及初始状态;
根据数据库中存储的原始数据表、多个所述任务号以及多个所述初始状态,创建目标数据表;
将多个所述任务号存储至远程字典服务redis服务器中;
向多个任务服务器发送任务执行指令,以控制所述多个任务服务器从所述redis服务器中获取所述任务号并执行与所述任务号对应的子任务。
在一种可能的实现方式中,所述对所述待分配任务进行划分,获得多个子任务包括:
获取预先配置的分配参数,所述分配参数包括分配轮次范围以及分配粒度范围;
根据所述待分配任务的总记录笔数、所述分配轮次范围以及所述分配粒度范围,确定最佳分配轮次;
根据所述最佳分配轮次以及所述待分配任务的总记录笔数,确定每个子任务的记录笔数,以获得多个子任务。
在一种可能的实现方式中,所述根据所述待分配任务的总记录笔数、所述分配轮次范围以及所述分配粒度范围,确定最佳分配轮次包括:
从所述分配轮次范围获取任一个轮次;
根据所述待分配任务的总记录笔数以及所述任一个轮次,计算每轮分配的记录笔数;
判断所述记录笔数是否处于所述分配粒度范围;
若所述记录笔数处于所述分配粒度范围,将所述任一个轮次确定为最佳分配轮次。
在一种可能的实现方式中,所述根据数据库中存储的原始数据表、多个所述任务号以及多个所述初始状态,创建目标数据表包括:
获取数据库中存储的原始数据表;
在所述原始数据表中添加任务号字段以及状态字段;
将多个所述任务号添加至所述任务号字段中,以及将多个所述初始状态添加至所述状态字段中,以创建目标数据表。
在一种可能的实现方式中,所述根据数据库中存储的原始数据表、多个所述任务号以及多个所述初始状态,创建目标数据表包括:
创建中间表,所述中间表包括业务标识、多个所述任务号以及多个所述初始状态;
获取数据库中存储的原始数据表;
从所述中间表中导入所述原始数据表;
根据所述业务标识,将所述原始数据表与所述中间表进行数据匹配,以创建目标数据表。
本发明的第三方面提供任务处理装置,运行于任务服务器中,所述任务处理装置包括:
接收模块,用于接收管理服务器发送的任务执行指令;
获取模块,用于从远程字典服务redis服务器中获取第一任务号,其中,所述redis服务器中预先存储有所述管理服务器为待分配任务设置的多个任务号;
所述获取模块,还用于根据所述第一任务号,从数据库中获取与所述第一任务号匹配的第一任务数据;
处理模块,用于使用预设数量的线程处理所述第一任务数据;
监测模块,用于在处理所述第一任务数据的过程中,监测所述任务服务器的中央处理器CPU的指标参数;
所述处理模块,还用于根据所述指标参数,动态控制处理所述第一任务数据的线程的实时数量;
所述处理模块,还用于使用所述实时数量的线程动态处理所述第一任务数据;
所述获取模块,还用于当所述第一任务数据处理完后,从所述redis服务器中获取第二任务号,并执行与所述第二任务号匹配的第二任务数据,直至所述redis服务器中的任务号被取完。
本发明的第四方面提供任务处理装置,运行于管理服务器中,所述任务处理装置包括:
获取模块,用于获取待分配任务;
划分设置模块,用于对所述待分配任务进行划分,获得多个子任务,并为多个所述子任务设置任务号以及初始状态;
创建模块,用于根据数据库中存储的原始数据表、多个所述任务号以及多个所述初始状态,创建目标数据表;
存储模块,用于将多个所述任务号存储至远程字典服务redis服务器中;
发送模块,用于向多个任务服务器发送任务执行指令,以控制所述多个任务服务器从所述redis服务器中获取所述任务号并执行与所述任务号对应的子任务。
本发明的第五方面提供一种服务器,所述服务器包括处理器和存储器,所述处理器用于执行所述存储器中存储的计算机程序时实现所述的任务处理方法。
本发明的第六方面提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现所述的任务处理方法。
由以上技术方案,本发明中,通过把待分配任务划分成多个子任务,让任务服务器从redis服务器中依次按队列获取任务号并执行子任务,处理速度快的任务服务器在处理完某个批次的子任务后,可以立即进行下一批次任务的处理,整个数据跑批过程中没有任务服务器空闲等待,充分利用了系统资源,提高了数据跑批的效率。
附图说明
图1是本发明公开的一种任务处理方法的较佳实施例的流程图。
图2是本发明公开的另一种任务处理方法的较佳实施例的流程图。
图3是本发明公开的一种任务处理装置的较佳实施例的功能模块图。
图4是本发明公开的另一种任务处理装置的较佳实施例的功能模块图。
图5是本发明实现任务处理方法的较佳实施例的服务器的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”是用于区别类似的对象,而不必用于描述特定的顺序或先后次序,也不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。
此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本发明要求的保护范围之内。
其中,服务器可以是指能对网络中其它设备提供服务的计算机系统。如果一个个人电脑能够对外提供文件传输协议(File Transfer Protocol,简称FTP)服务,也可以叫服务器。从狭义范围上讲,服务器专指某些高性能计算机,能通过网络,对外提供服务,其相对于普通的个人电脑来说,稳定性、安全性、性能等方面都要求更高,因此在CPU、芯片组、内存、磁盘系统、网络等硬件和普通的个人电脑有所不同。
本发明中,服务器可以包括管理服务器和任务服务器,其中,管理服务器主要用于划分任务,设置任务号,并下发任务执行指令。任务服务器主要用于根据任务执行指令,执行任务。
图1是本发明公开的一种任务处理方法的较佳实施例的流程图。其中,该任务处理方法主要应用于任务服务器中,根据不同的需求,该流程图中步骤的顺序可以改变,某些步骤可以省略。
S11、任务服务器接收管理服务器发送的任务执行指令。
其中,管理服务器主要用于划分任务,设置任务号,并下发任务执行指令。任务服务器主要用于根据任务执行指令,执行任务。
S12、任务服务器从远程字典服务redis服务器中获取第一任务号。
其中,用redis服务器中的List可以实现队列。用redis服务器来存储任务号,可以使得任务号以任务调度的队列方式被多个任务服务器获取。
其中,每个任务服务器都从redis服务器中获取任务号,可以使得每个任务服务器获取的任务号不会重复,确保每个任务服务器处理的任务的唯一性。
其中,任务号即任务的标识,用于唯一标识每个任务,通过任务号,可以区分不同的任务,所述第一任务号也即任务号中的一个或多个。
S13、任务服务器根据所述第一任务号,从数据库中获取与所述第一任务号匹配的第一任务数据。
S14、任务服务器使用预设数量的线程处理所述第一任务数据。
其中,该预设数量是预先根据业务的要求估计的一个线程的数量,在获取到任务数据时,可以先使用该预设数量的线程去处理任务数据,后续在实时动态地去调整线程的数量。
S15、任务服务器在处理所述第一任务数据的过程中,监测所述任务服务器的中央处理器CPU的指标参数。
其中,所述指标参数包括CPU利用率、CPU负载。
S16、任务服务器根据所述指标参数,动态控制处理所述第一任务数据的线程的实时数量。
其中,所述指标参数为CPU利用率,所述根据所述指标参数,动态控制处理所述第一任务数据的线程的实时数量包括:
判断所述CPU利用率是否超过预设标准阈值;
若所述CPU利用率未超过预设标准阈值,计算所述预设标准阈值与所述CPU利用率之间的差值;
根据所述CPU利用率以及所述预设数量,计算当前每个所述线程的平均CPU利用率;
根据所述差值以及所述平均CPU利用率,确定需要增加的线程的第一数量;
根据所述第一数量以及所述预设数量,确定处理所述第一任务数据的线程的实时数量。
其中,预设数量的线程在处理任务数据时,如果线程的数量过少,可能会导致CPU利用率过低,系统资源得不到合理利用,这种情况下,可以根据当前检测到的CPU利用率的使用情况,来动态变更处理任务数据的线程的数量,即增加一些数量的线程,使得处理所述任务数据的线程的实时数量增加,这样可以充分利用系统资源,同时,加快任务数据处理的速度,提高效率。
其中,所述指标参数为CPU负载,所述根据所述指标参数,动态控制处理所述第一任务数据的线程的实时数量包括:
判断所述CPU负载是否超过预设负载阈值;
若所述CPU负载超过预设负载阈值,计算所述CPU负载与所述预设负载阈值之间的差值;
获取每个线程的最大负载值;
根据所述差值以及所述最大负载值,确定需要增加的线程的第二数量;
根据所述第二数量以及所述预设数量,确定处理所述第一任务数据的线程的实时数量。
其中,预设数量的线程在处理任务数据时,如果线程的数量过少,可能会导致CPU负载太高,系统崩溃,这种情况下,可以根据当前检测到的CPU负载的使用情况,来动态变更处理任务数据的线程的数量,即增加一些数量的线程,使得处理所述任务数据的线程的实时数量增加,用来分摊当前处理任务数据的线程的压力,这样不仅可以充分利用系统资源,减少单个线程的处理压力,同时,还可以加快任务数据处理的速度,提高效率。
S17、任务服务器使用所述实时数量的线程动态处理所述第一任务数据。
S18、当所述第一任务数据处理完后,任务服务器从所述redis服务器中获取第二任务号,并执行与所述第二任务号匹配的第二任务数据,直至所述redis服务器中的任务号被取完。
其中,任务服务器处理完第一任务数据后,即可从redis服务器中获取新的任务号,以执行新的任务,其中,第二任务号即不同于第一任务号的其他任务号,第二任务号标识的任务也即新的任务。
其中,处理速度快的任务服务器在处理完某个批次的子任务后,可以立即进行下一批次任务的处理,直至所有的任务被处理完。整个数据跑批过程中没有任务服务器空闲等待,充分利用了系统资源,提高了数据跑批的效率。
在图1所描述的方法流程中,任务服务器从redis服务器中依次按队列获取任务号并执行子任务,处理速度快的任务服务器在处理完某个批次的子任务后,可以立即进行下一批次任务的处理,整个数据跑批过程中没有任务服务器空闲等待,充分利用了系统资源,提高了数据跑批的效率。
图2是本发明公开的另一种任务处理方法的较佳实施例的流程图。其中,该任务处理方法主要应用于管理服务器中,根据不同的需求,该流程图中步骤的顺序可以改变,某些步骤可以省略。
S21、管理服务器获取待分配任务。
S22、管理服务器对所述待分配任务进行划分,获得多个子任务,并为多个所述子任务设置任务号以及初始状态。
其中,所述初始状态为未处理。
具体的,所述对所述待分配任务进行划分,获得多个子任务包括:
获取预先配置的分配参数,所述分配参数包括分配轮次范围以及分配粒度范围;
根据所述待分配任务的总记录笔数、所述分配轮次范围以及所述分配粒度范围,确定最佳分配轮次;
根据所述最佳分配轮次以及所述待分配任务的总记录笔数,确定每个子任务的记录笔数,以获得多个子任务。
具体的,根据所述待分配任务的总记录笔数、所述分配轮次范围以及所述分配粒度范围,确定最佳分配轮次包括:
从所述分配轮次范围获取任一个轮次;
根据所述待分配任务的总记录笔数以及所述任一个轮次,计算每轮分配的记录笔数;
判断所述记录笔数是否处于所述分配粒度范围;
若所述记录笔数处于所述分配粒度范围,将所述任一个轮次确定为最佳分配轮次。
其中,所述分配轮次范围为预先根据业务需求设定的允许分配的次数范围,所述分配粒度范围为预先根据业务需求设定的允许分配的任务的记录笔数的范围。其中,任务是以数据的记录笔数存在,比如一个任务包括1000笔的记录数据。
举例来说,假设待分配任务有10000笔记录,分配轮次范围为[1,10],分配粒度范围为[100,1000],可以任取一个轮次为10,计算得到的每轮分配的记录笔数为10000/10=1000,该1000属于分配粒度范围为[100,1000],则可以确定最佳分配轮次为10。
最佳分配轮次为10,总记录笔数为10000,可以确定每个子任务的记录笔数为1000,获得10个子任务。
S23、管理服务器根据数据库中存储的原始数据表、多个所述任务号以及多个所述初始状态,创建目标数据表。
所述根据数据库中存储的原始数据表、多个所述任务号以及多个所述初始状态,创建目标数据表包括:
获取数据库中存储的原始数据表;
在所述原始数据表中添加任务号字段以及状态字段;
将多个所述任务号添加至所述任务号字段中,以及将多个所述初始状态添加至所述状态字段中,以创建目标数据表。
其中,该实施方式主要在原始数据表中添加字段,更新原始数据表以创建目标数据表。
所述根据数据库中存储的原始数据表、多个所述任务号以及多个所述初始状态,创建目标数据表包括:
创建中间表,所述中间表包括业务标识、多个所述任务号以及多个所述初始状态;
获取数据库中存储的原始数据表;
从所述中间表中导入所述原始数据表;
根据所述业务标识,将所述原始数据表与所述中间表进行数据匹配,以创建目标数据表。
其中,该实施方式不需要变更原始数据表,只需要先创建一个中间表,并导入原始数据表,根据业务标识,进行数据对接,以创建目标数据表。
S24、管理服务器将多个所述任务号存储至redis服务器中。
其中,用redis服务器中的List可以实现队列。用redis服务器来存储任务号,可以使得任务号以任务调度的队列方式被多个任务服务器获取。
其中,每个任务服务器都从redis服务器中获取任务号,可以使得每个任务服务器获取的任务号不会重复,确保每个任务服务器处理的任务的唯一性。
S25、管理服务器向多个任务服务器发送任务执行指令,以控制所述多个任务服务器从所述redis服务器中获取所述任务号并执行与所述任务号对应的子任务。
所述方法还包括:
接收所述任务服务器返回的任务处理结果;
根据所述任务处理结果,更新每个所述子任务的最终状态。
其中,所述最终状态为处理。
在图2所描述的方法流程中,通过把待分配任务划分成多个子任务,让任务服务器从redis服务器中依次按队列获取任务号并执行子任务,处理速度快的任务服务器在处理完某个批次的子任务后,可以立即进行下一批次任务的处理,整个数据跑批过程中没有任务服务器空闲等待,充分利用了系统资源,提高了数据跑批的效率。
以上所述,仅是本发明的具体实施方式,但本发明的保护范围并不局限于此,对于本领域的普通技术人员来说,在不脱离本发明创造构思的前提下,还可以做出改进,但这些均属于本发明的保护范围。
图3是本发明公开的一种任务处理装置的较佳实施例的功能模块图。在一些实施例中,所述任务处理装置运行于任务服务器中。所述任务处理装置可以包括多个由程序代码段所组成的功能模块。所述任务处理装置中的各个程序段的程序代码可以存储于存储器中,并由至少一个处理器所执行,以执行图1所描述的任务处理方法中的部分或全部步骤,具体请参考图1中的相关描述,在此不再赘述。
本实施例中,所述任务处理装置根据其所执行的功能,可以被划分为多个功能模块。所述功能模块可以包括:接收模块301、获取模块302、处理模块303及监测模块304。本发明所称的模块是指一种能够被至少一个处理器所执行并且能够完成固定功能的一系列计算机程序段,其存储在存储器中。在一些实施例中,关于各模块的功能将在本实施例中详述。
接收模块301,用于接收管理服务器发送的任务执行指令。
获取模块302,用于从远程字典服务redis服务器中获取第一任务号,其中,所述redis服务器中预先存储有所述管理服务器为待分配任务设置的多个任务号。
所述获取模块302,还用于根据所述第一任务号,从数据库中获取与所述第一任务号匹配的第一任务数据。
处理模块303,用于使用预设数量的线程处理所述第一任务数据。
监测模块304,用于在处理所述第一任务数据的过程中,监测所述任务服务器的中央处理器CPU的指标参数。
所述处理模块303,还用于根据所述指标参数,动态控制处理所述第一任务数据的线程的实时数量。
所述处理模块303,还用于使用所述实时数量的线程动态处理所述第一任务数据。
所述获取模块302,还用于当所述第一任务数据处理完后,从所述redis服务器中获取第二任务号,并执行与所述第二任务号匹配的第二任务数据,直至所述redis服务器中的任务号被取完。
在图3所描述的任务处理装置中,任务服务器从redis服务器中依次按队列获取任务号并执行子任务,处理速度快的任务服务器在处理完某个批次的子任务后,可以立即进行下一批次任务的处理,整个数据跑批过程中没有任务服务器空闲等待,充分利用了系统资源,提高了数据跑批的效率。
图4是本发明公开的另一种任务处理装置的较佳实施例的功能模块图。在一些实施例中,所述任务处理装置运行于管理服务器中。所述任务处理装置可以包括多个由程序代码段所组成的功能模块。所述任务处理装置中的各个程序段的程序代码可以存储于存储器中,并由至少一个处理器所执行,以执行图2所描述的任务处理方法中的部分或全部步骤,具体请参考图2中的相关描述,在此不再赘述。
本实施例中,所述任务处理装置根据其所执行的功能,可以被划分为多个功能模块。所述功能模块可以包括:获取模块401、划分设置模块402、创建模块403、存储模块404及发送模块405。本发明所称的模块是指一种能够被至少一个处理器所执行并且能够完成固定功能的一系列计算机程序段,其存储在存储器中。在一些实施例中,关于各模块的功能将在本实施例中详述。
获取模块401,用于获取待分配任务。
划分设置模块402,用于对所述待分配任务进行划分,获得多个子任务,并为多个所述子任务设置任务号以及初始状态。
创建模块403,用于根据数据库中存储的原始数据表、多个所述任务号以及多个所述初始状态,创建目标数据表。
存储模块404,用于将多个所述任务号存储至远程字典服务redis服务器中。
发送模块405,用于向多个任务服务器发送任务执行指令,以控制所述多个任务服务器从所述redis服务器中获取所述任务号并执行与所述任务号对应的子任务。
在图4所描述的任务处理装置中,通过把待分配任务划分成多个子任务,让任务服务器从redis服务器中依次按队列获取任务号并执行子任务,处理速度快的任务服务器在处理完某个批次的子任务后,可以立即进行下一批次任务的处理,整个数据跑批过程中没有任务服务器空闲等待,充分利用了系统资源,提高了数据跑批的效率。
图5是本发明实现任务处理方法的较佳实施例的服务器的结构示意图。所述服务器5包括存储器51、至少一个处理器52、存储在所述存储器51中并可在所述至少一个处理器52上运行的计算机程序53及至少一条通讯总线54。
本领域技术人员可以理解,图5所示的示意图仅仅是所述服务器5的示例,并不构成对所述服务器5的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述服务器5还可以包括输入输出设备、网络接入设备等。
所述至少一个处理器52可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。该处理器52可以是微处理器或者该处理器52也可以是任何常规的处理器等,所述处理器52是所述服务器5的控制中心,利用各种接口和线路连接整个服务器5的各个部分。
所述存储器51可用于存储所述计算机程序53和/或模块/单元,所述处理器52通过运行或执行存储在所述存储器51内的计算机程序和/或模块/单元,以及调用存储在存储器51内的数据,实现所述服务器5的各种功能。所述存储器51可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据服务器5的使用所创建的数据(比如音频数据)等。此外,存储器51可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)、至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。
结合图1,所述服务器5中的所述存储器51存储多个指令以实现一种任务处理方法,所述处理器52可执行所述多个指令从而实现:
接收管理服务器发送的任务执行指令;
从远程字典服务redis服务器中获取第一任务号,其中,所述redis服务器中预先存储有所述管理服务器为待分配任务设置的多个任务号;
根据所述第一任务号,从数据库中获取与所述第一任务号匹配的第一任务数据;
使用预设数量的线程处理所述第一任务数据;
在处理所述第一任务数据的过程中,监测所述任务服务器的中央处理器CPU的指标参数;
根据所述指标参数,动态控制处理所述第一任务数据的线程的实时数量;
使用所述实时数量的线程动态处理所述第一任务数据;
当所述第一任务数据处理完后,从所述redis服务器中获取第二任务号,并执行与所述第二任务号匹配的第二任务数据,直至所述redis服务器中的任务号被取完。
结合图2,所述服务器5中的所述存储器51存储多个指令以实现一种任务处理方法,所述处理器52可执行所述多个指令从而实现:
获取待分配任务;
对所述待分配任务进行划分,获得多个子任务,并为多个所述子任务设置任务号以及初始状态;
根据数据库中存储的原始数据表、多个所述任务号以及多个所述初始状态,创建目标数据表;
将多个所述任务号存储至远程字典服务redis服务器中;
向多个任务服务器发送任务执行指令,以控制所述多个任务服务器从所述redis服务器中获取所述任务号并执行与所述任务号对应的子任务。
具体地,所述处理器52对上述指令的具体实现方法可参考图1对应实施例中相关步骤的描述,在此不赘述。
在图5所描述的服务器5中,通过把待分配任务划分成多个子任务,让任务服务器从redis服务器中依次按队列获取任务号并执行子任务,处理速度快的任务服务器在处理完某个批次的子任务后,可以立即进行下一批次任务的处理,整个数据跑批过程中没有任务服务器空闲等待,充分利用了系统资源,提高了数据跑批的效率。
所述服务器5集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器以及只读存储器(ROM,Read-Only Memory)。
在本发明所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能模块的形式实现。
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明内。不应将权利要求中的任何附关联图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。系统权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。
最后应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或等同替换,而不脱离本发明技术方案的精神和范围。
Claims (7)
1.一种任务处理方法,应用于任务服务器中,其特征在于,所述任务处理方法包括:
接收管理服务器发送的任务执行指令;
从远程字典服务redis服务器中获取第一任务号,其中,所述redis服务器中预先存储有所述管理服务器为待分配任务设置的多个任务号;
根据所述第一任务号,从数据库中获取与所述第一任务号匹配的第一任务数据;
使用预设数量的线程处理所述第一任务数据;
在处理所述第一任务数据的过程中,监测所述任务服务器的中央处理器CPU的指标参数;
根据所述指标参数,动态控制处理所述第一任务数据的线程的实时数量,包括:判断所述指标参数中的CPU利用率是否超过预设标准阈值,若所述CPU利用率未超过预设标准阈值,计算所述预设标准阈值与所述CPU利用率之间的差值,根据所述CPU利用率以及所述预设数量,计算当前每个所述线程的平均CPU利用率,根据所述差值以及所述平均CPU利用率,确定需要增加的线程的第一数量,根据所述第一数量以及所述预设数量,确定处理所述第一任务数据的线程的实时数量;
使用所述实时数量的线程动态处理所述第一任务数据;
当所述第一任务数据处理完后,从所述redis服务器中获取第二任务号,并执行与所述第二任务号匹配的第二任务数据,直至所述redis服务器中的任务号被取完。
2.根据权利要求1所述的任务处理方法,其特征在于,所述指标参数为CPU负载,所述根据所述指标参数,动态控制处理所述第一任务数据的线程的实时数量包括:
判断所述CPU负载是否超过预设负载阈值;
若所述CPU负载超过预设负载阈值,计算所述CPU负载与所述预设负载阈值之间的差值;
获取每个线程的最大负载值;
根据所述差值以及所述最大负载值,确定需要增加的线程的第二数量;
根据所述第二数量以及所述预设数量,确定处理所述第一任务数据的线程的实时数量。
3.一种任务处理方法,应用于管理服务器中,其特征在于,所述任务处理方法包括:
获取待分配任务;
对所述待分配任务进行划分,获得多个子任务,并为多个所述子任务设置任务号以及初始状态,包括:获取预先配置的分配参数,所述分配参数包括分配轮次范围以及分配粒度范围,从所述分配轮次范围获取任一个轮次,根据所述待分配任务的总记录笔数以及所述任一个轮次,计算每轮分配的记录笔数,若所述记录笔数处于所述分配粒度范围,将所述任一个轮次确定为最佳分配轮次,根据所述最佳分配轮次以及所述待分配任务的总记录笔数,确定每个子任务的记录笔数,以获得所述多个子任务,其中,所述分配粒度范围为预先根据业务需求设定的允许分配的任务的记录笔数的范围;
根据数据库中存储的原始数据表、多个所述任务号以及多个所述初始状态,创建目标数据表;
将多个所述任务号存储至远程字典服务redis服务器中;
向多个任务服务器发送任务执行指令,以控制所述多个任务服务器从所述redis服务器中获取所述任务号并执行与所述任务号对应的子任务。
4.根据权利要求3所述的任务处理方法,其特征在于,所述根据数据库中存储的原始数据表、多个所述任务号以及多个所述初始状态,创建目标数据表包括:
获取数据库中存储的原始数据表;
在所述原始数据表中添加任务号字段以及状态字段;
将多个所述任务号添加至所述任务号字段中,以及将多个所述初始状态添加至所述状态字段中,以创建目标数据表。
5.根据权利要求3所述的任务处理方法,其特征在于,所述根据数据库中存储的原始数据表、多个所述任务号以及多个所述初始状态,创建目标数据表包括:
创建中间表,所述中间表包括业务标识、多个所述任务号以及多个所述初始状态;
获取数据库中存储的原始数据表;
从所述中间表中导入所述原始数据表;
根据所述业务标识,将所述原始数据表与所述中间表进行数据匹配,以创建目标数据表。
6.一种服务器,其特征在于,所述服务器包括处理器和存储器,所述处理器用于执行存储器中存储的计算机程序以实现如权利要求1至5中任意一项所述的任务处理方法。
7.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至5任意一项所述的任务处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010718737.2A CN111858055B (zh) | 2020-07-23 | 2020-07-23 | 任务处理方法、服务器及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010718737.2A CN111858055B (zh) | 2020-07-23 | 2020-07-23 | 任务处理方法、服务器及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111858055A CN111858055A (zh) | 2020-10-30 |
CN111858055B true CN111858055B (zh) | 2023-02-03 |
Family
ID=72951158
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010718737.2A Active CN111858055B (zh) | 2020-07-23 | 2020-07-23 | 任务处理方法、服务器及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111858055B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113742057A (zh) * | 2021-01-21 | 2021-12-03 | 北京沃东天骏信息技术有限公司 | 一种任务执行方法和装置 |
CN113254149B (zh) * | 2021-05-13 | 2022-10-21 | 南京宇天智云仿真技术有限公司 | 一种基于流式计算的动体运行仿真方法 |
CN112948100B (zh) * | 2021-05-13 | 2021-07-27 | 南京宇天智云仿真技术有限公司 | 一种多动体仿真系统 |
CN113342885B (zh) * | 2021-06-15 | 2022-08-12 | 深圳前海微众银行股份有限公司 | 数据导入方法、装置、设备及计算机程序产品 |
WO2023077436A1 (en) * | 2021-11-05 | 2023-05-11 | Nvidia Corporation | Thread specialization for collaborative data transfer and computation |
CN116501499B (zh) * | 2023-05-17 | 2023-09-19 | 建信金融科技有限责任公司 | 数据跑批方法、装置、电子设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106330987A (zh) * | 2015-06-15 | 2017-01-11 | 交通银行股份有限公司 | 动态负荷均衡方法 |
CN107247628A (zh) * | 2017-06-22 | 2017-10-13 | 华中科技大学 | 一种面向多核系统的数据流程序任务划分与调度方法 |
CN111142943A (zh) * | 2019-12-27 | 2020-05-12 | 中国银行股份有限公司 | 自动控制并发方法及装置 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7870243B1 (en) * | 2000-04-11 | 2011-01-11 | International Business Machines Corporation | Method, system and program product for managing network performance |
US8631415B1 (en) * | 2009-08-25 | 2014-01-14 | Netapp, Inc. | Adjustment of threads for execution based on over-utilization of a domain in a multi-processor system by sub-dividing parallizable group of threads to sub-domains |
US20170228422A1 (en) * | 2016-02-10 | 2017-08-10 | Futurewei Technologies, Inc. | Flexible task scheduler for multiple parallel processing of database data |
-
2020
- 2020-07-23 CN CN202010718737.2A patent/CN111858055B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106330987A (zh) * | 2015-06-15 | 2017-01-11 | 交通银行股份有限公司 | 动态负荷均衡方法 |
CN107247628A (zh) * | 2017-06-22 | 2017-10-13 | 华中科技大学 | 一种面向多核系统的数据流程序任务划分与调度方法 |
CN111142943A (zh) * | 2019-12-27 | 2020-05-12 | 中国银行股份有限公司 | 自动控制并发方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN111858055A (zh) | 2020-10-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111858055B (zh) | 任务处理方法、服务器及存储介质 | |
CN109783229B (zh) | 线程资源分配的方法及装置 | |
CN110351375B (zh) | 一种数据处理方法、装置及计算机装置、可读存储介质 | |
CN108776934B (zh) | 分布式数据计算方法、装置、计算机设备及可读存储介质 | |
US10430332B2 (en) | System and method for performance tuning of garbage collection algorithms | |
CN111290917A (zh) | 基于yarn的资源监控方法、装置及终端设备 | |
CN110445828B (zh) | 一种基于Redis的数据分布式处理方法及其相关设备 | |
CN103761146B (zh) | 一种MapReduce动态设定slots数量的方法 | |
CN111506398B (zh) | 任务调度方法和装置、存储介质、电子装置 | |
CN111125174A (zh) | 数据导出方法、装置、存储介质、电子设备 | |
CN112860387A (zh) | 分布式任务调度方法、装置、计算机设备及存储介质 | |
CN110321364B (zh) | 信用卡管理系统的交易数据查询方法、装置及终端 | |
CN110099108B (zh) | 一种区块链事件去重方法、装置、计算机设备及存储介质 | |
CN111949666A (zh) | 标识生成方法、装置、电子设备及存储介质 | |
CN114048033A (zh) | 跑批任务的负载均衡方法、装置及计算机设备 | |
CN110781387B (zh) | 证券行情快照的推送方法、证券交易系统及存储介质 | |
CN109284193B (zh) | 一种基于多线程的分布式数据处理方法及服务器 | |
CN108696559B (zh) | 流处理方法及装置 | |
CN116319948A (zh) | 会话时长计算方法、装置、计算机设备及存储介质 | |
CN111343152B (zh) | 数据处理方法、装置及电子设备、存储介质 | |
CN109901931B (zh) | 一种归约函数数量确定方法、装置及系统 | |
CN111339422A (zh) | 推荐系统任务管理平台、推荐方法及系统 | |
CN113723763A (zh) | 一种订单生产效率管理方法、装置、终端设备及存储介质 | |
CN107491448A (zh) | 一种HBase资源调整方法和装置 | |
CN111679909A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |