任务处理系统、方法及计算机可读存储介质转让专利

申请号 : CN201911075686.X

文献号 : CN112783634B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 陈予郎

申请人 : 长鑫存储技术有限公司

摘要 :

本发明实施例涉及计算机技术领域,公开了一种任务处理系统,包括:控制节点服务器、数据节点服务器以及多个运算节点服务器;控制节点服务器连接数据节点服务器,用于收集多个子任务,并将多个子任务整理为任务清单后,将任务清单发送至数据节点服务器;数据节点服务器用于接收控制节点服务器发送的任务清单;多个运算节点服务器连接数据节点服务器,运算节点服务器用于从数据节点服务器中承接任务清单,并生成工人线程,通过工人线程执行所承接的任务清单中的子任务。实现了运算节点服务器资源的灵活占用,且避免运算节点服务器频繁领取子任务,避免造成系统拥堵。

权利要求 :

1.一种任务处理系统,其特征在于,包括:控制节点服务器、数据节点服务器以及多个运算节点服务器;

所述控制节点服务器连接所述数据节点服务器,用于收集多个子任务,并将多个所述子任务整理为任务清单后,将所述任务清单发送至所述数据节点服务器;所述控制节点服务器还用于对所述任务清单标记建立时间,并将标记有所述建立时间的任务清单发送至所述数据节点服务器;

所述数据节点服务器用于接收所述控制节点服务器发送的所述任务清单;所述数据节点服务器还用于更新所述任务清单的状态,所述状态包括执行完毕及未执行完毕;

多个所述运算节点服务器连接所述数据节点服务器,所述运算节点服务器用于从所述数据节点服务器中承接建立时间最早、且状态为未执行完毕的任务清单,并生成工人线程,通过所述工人线程执行所承接的任务清单中的子任务。

2.根据权利要求1所述的任务处理系统,其特征在于,所述控制节点服务器包括:收集模块、与所述收集模块连接的处理模块;

所述收集模块用于收集多个子任务;

所述处理模块用于将所述收集模块预设时间内收集的所述子任务整理为任务清单,且对所述任务清单标记建立时间,并将标记有所述建立时间的任务清单发送至所述数据节点服务器;

所述运算节点服务器包括:承接模块、与所述承接模块连接的执行模块;

所述承接模块用于从所述数据节点服务器获取建立时间最早、且状态为未执行完毕的任务清单;

所述执行模块用于为所述任务清单的子任务生成工人线程,由所述工人线程执行所述子任务。

3.根据权利要求2所述的任务处理系统,其特征在于,所述数据节点服务器包括:接收模块及与所述接收模块连接的记录模块;

所述接收模块用于接收所述控制节点服务器发送的任务清单;

所述记录模块用于在运算节点服务器承接所述任务清单后,记录承接所述任务清单的运算节点服务器的团队称号。

4.根据权利要求3所述的任务处理系统,其特征在于,所述运算节点服务器还包括:监测模块;

所述监测模块用于监测所述运算节点服务器承接的所述任务清单中的子任务是否被执行完毕,若监测到所述子任务被执行完毕后,发送完成时间至所述数据节点服务器;

所述记录模块还用于记录承接所述任务清单的所有运算节点服务器的完成时间,所述完成时间与所述运算节点服务器的团队称号对应。

5.根据权利要求4所述的任务处理系统,其特征在于,所述数据节点服务器还包括:状态更新模块;

所述状态更新模块用于在承接所述任务清单的所有运算节点服务器对应的团队称号均记录有完成时间时,更新所述任务清单的状态为执行完毕。

6.根据权利要求5所述的任务处理系统,其特征在于,所述数据节点服务器还包括:清除模块;

所述清除模块用于清除状态为执行完毕的任务清单。

7.根据权利要求4所述的任务处理系统,其特征在于,所述监测模块具体用于监测所述运算节点服务器中是否存在工人线程,并在确定无工人线程时,发送所述完成时间至所述数据节点服务器;

所述承接模块还用于在所述监测模块发送所述完成时间后,承接新的任务清单。

8.根据权利要求3所述的任务处理系统,其特征在于,所述处理模块包括:编码子模块、以及与所述编码子模块连接的票据创立子模块;

所述编码子模块用于为所述收集模块收集的多个子任务中的每个子任务生成对应的任务编号,所述任务清单包含所有子任务的任务编号;

所述票据创立子模块用于根据所述任务清单创立票据表单,并将所述票据表单发送至所述数据节点服务器。

9.根据权利要求8所述的任务处理系统,其特征在于,所述执行模块用于生成工人线程,由所述工人线程将相应的工人线程名称发送至所述数据节点服务器以申请执行子任务;

所述记录模块还用于在所述工人线程申请执行子任务时,在所述票据表单中创建票据编号,并将所述票据编号回传至与所述工人线程名称对应的工人线程,其中,所述票据编号与所述任务编号一一对应;

所述执行模块还用于在接收到所述票据编号后通过所述工人线程执行与相应任务编号对应的子任务。

10.根据权利要求1所述的任务处理系统,其特征在于,所述控制节点服务器为多个,每个所述控制节点服务器对其生成的任务清单进行标识;

所述控制节点服务器用于从所述数据节点服务器获取标记有所述标识的任务清单的完成情况。

11.一种任务处理方法,其特征在于,包括:控制节点服务器收集子任务,并将预设时间内收集的多个子任务整理为任务清单,并对所述任务清单标记建立时间;

控制节点服务器将所述任务清单发送至数据节点服务器;

所述数据节点服务器更新标记有所述建立时间的任务清单的状态,所述状态包括执行完毕及未执行完毕;

运算节点服务器从所述数据节点服务器中承接建立时间最早、且状态为未执行完毕的任务清单;

运算节点服务器生成工人线程,通过所述工人线程执行所述任务清单中的子任务。

12.根据权利要求11所述的任务处理方法,其特征在于,还包括:运算节点服务器在监测到所述任务清单中的子任务执行完成后,发送完成时间至所述数据节点服务器;

数据节点服务器记录所述完成时间,并在承接所述任务清单的所有运算节点服务器均记录有完成时间时,更新所述任务清单的状态为执行完毕。

13.根据权利要求11所述的任务处理方法,其特征在于,还包括:控制节点服务器为收集的每个子任务生成对应的任务编号,所述任务清单包含所有子任务的任务编号;

控制节点服务器根据所述任务清单创立票据表单,并将所述票据表单发送至所述数据节点服务器。

14.根据权利要求13所述的任务处理方法,其特征在于,还包括:所述运算节点服务器生成工人线程,所述工人线程将相应的工人线程名称发送至所述数据节点服务器以申请执行子任务;

所述数据节点服务器在所述工人线程申请执行子任务时,在所述票据表单中创建票据数据,并将与所述票据数据对应的票据编号回传至所述工人线程;所述票据编号与所述任务编号一一对应;

运算节点服务器在接收到所述票据编号后通过所述工人线程执行与相应任务编号对应的子任务。

15.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求11‑14任一项所述的任务处理方法。

说明书 :

任务处理系统、方法及计算机可读存储介质

技术领域

[0001] 本发明实施例涉及计算机技术领域,特别涉及一种任务处理系统、方法及计算机可读存储介质。

背景技术

[0002] 现有技术中,在分布式环境中进行的子任务处理方法一般通过控制节点服务器和运算节点服务器来实现,具体可以包括下述过程:控制节点服务器与各个运算节点服务器
建立连接,以获取各个运算节点服务器的CPU占用率。控制节点服务器根据获取的各个运算
节点服务器的CPU占用率,将任务池中预先存储的各任务分发到相应的运算节点服务器进
行处理。
[0003] 然而,发明人发现现有技术中至少存在如下问题:若由控制节点服务器直接连接各个运算节点服务器以分发任务给运算节点服务器进行处理,有可能造成资源分配不均;
若由运算节点服务器直接领取任务,有可能造成系统拥堵。

发明内容

[0004] 本发明实施方式的目的在于提供一种任务处理系统,在实现运算节点服务器资源的灵活占用的同时,还能够避免运算节点服务器频繁领取子任务,避免造成系统拥堵。
[0005] 为解决上述技术问题,本发明的实施方式提供了一种任务处理系统,包括:控制节点服务器、数据节点服务器以及多个运算节点服务器;控制节点服务器连接数据节点服务
器,用于收集多个子任务,并将多个子任务整理为任务清单后,将任务清单发送至数据节点
服务器;数据节点服务器用于接收控制节点服务器发送的任务清单;多个运算节点服务器
连接数据节点服务器,运算节点服务器用于从数据节点服务器中承接任务清单,并生成工
人线程,通过工人线程执行所承接的任务清单中的子任务。
[0006] 本发明的实施方式还提供了一种任务处理方法,包括:控制节点服务器收集子任务,并将子任务整理为任务清单;控制节点服务器将任务清单发送至数据节点服务器;运算
节点服务器从数据节点服务器中承接任务清单;运算节点服务器生成工人线程,通过工人
线程执行任务清单中的子任务。
[0007] 本发明的实施方式还提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述的任务处理方法。
[0008] 本发明实施方式相对于现有技术而言,提供了一种任务处理系统,包括:控制节点服务器、数据节点服务器以及多个运算节点服务器;控制节点服务器连接数据节点服务器,
用于收集多个子任务,并将多个子任务整理为任务清单后,将任务清单发送至数据节点服
务器;数据节点服务器用于接收控制节点服务器发送的任务清单;多个运算节点服务器连
接数据节点服务器,运算节点服务器用于从数据节点服务器中承接任务清单,并为生成工
人线程,通过工人线程执行所承接的任务清单中的子任务。由于运算节点服务器直接承接
任务清单,一次承接便可领取到多个子任务,避免了运算节点服务器频繁领取子任务而造
成系统拥堵;且控制节点服务器与多个运算节点服务器均与数据节点服务器连接,避免控
制节点服务器直接连接运算节点服务器带来的资源调度不平衡问题,实现了运算节点服务
器资源的灵活占用。
[0009] 另外,控制节点服务器包括:收集模块、与收集模块连接的处理模块;收集模块用于收集多个子任务;处理模块用于将收集模块预设时间内收集的子任务整理为任务清单,
且对任务清单标记建立时间,并将标记有建立时间的任务清单发送至数据节点服务器;数
据节点服务器还用于更新任务清单的状态,状态包括执行完毕及未执行完毕;运算节点服
务器包括:承接模块、与承接模块连接的执行模块;承接模块用于从数据节点服务器获取建
立时间最早、且状态为未执行完毕的任务清单;执行模块用于为任务清单的子任务生成工
人线程,由工人线程执行子任务。
[0010] 另外,数据节点服务器包括:接收模块及与接收模块连接的记录模块;接收模块用于接收控制节点服务器发送的任务清单;记录模块用于在运算节点服务器承接任务清单
后,记录承接任务清单的运算节点服务器的团队称号。该方案中数据节点服务器在任务清
单被运算节点服务器承接后,记录承接该任务清单的所有运算节点服务器的团队称号,方
便控制节点服务器获知任务清单被哪些运算节点服务器承接。
[0011] 另外,运算节点服务器还包括:监测模块;监测模块用于监测运算节点服务器承接的任务清单中的子任务是否被执行完毕,若监测到子任务被执行完毕后,发送完成时间至
数据节点服务器;记录模块还用于记录承接任务清单的运算节点服务器的完成时间,完成
时间与运算节点服务器的团队称号对应。该方案中运算节点服务器执行完子任务后,发送
完成时间至数据节点服务器,由数据节点服务器记录完成时间,方便控制节点服务器获知
承接该任务清单的哪些运算节点服务器执行完毕。
[0012] 另外,数据节点服务器还包括:状态更新模块;状态更新模块用于在承接任务清单的所有运算节点服务器对应的团队称号均记录有完成时间时,更新任务清单的状态为执行
完毕。该方案中任务清单被执行完毕后,更新任务清单的状态位置执行完毕,从而避免已被
执行完毕的任务清单被重复领取。
[0013] 另外,数据节点服务器还包括:清除模块;清除模块用于清除状态为执行完毕的任务清单。该方案中数据节点服务器清除已经执行完毕的任务清单,避免数据节点服务器的
资源浪费。
[0014] 另外,监测模块具体用于监测运算节点服务器中是否存在工人线程,并在确定无工人线程时,发送完成时间至数据节点服务器;承接模块还用于在监测模块发送完成时间
后,承接新的任务清单。该方案中运算节点服务器在确定无工人线程工作时,再继续承接新
的任务清单,提高了运算节点服务器的处理效率。
[0015] 另外,处理模块包括:编码子模块、以及与编码子模块连接的票据创立子模块;编码子模块用于为收集模块收集的多个子任务中的每个子任务生成对应的任务编号,任务清
单包含所有子任务的任务编号;票据创立子模块用于根据任务清单创立票据表单,并将票
据表单发送至数据节点服务器。
[0016] 另外,执行模块用于生成工人线程,由工人线程将相应的工人线程名称发送至数据节点服务器以申请执行子任务;记录模块还用于在工人线程申请执行子任务时,在票据
表单中创建票据编号,并将票据编号回传至与工人线程名称对应的工人线程,其中,票据编
号与任务编号一一对应;执行模块还用于在接收到票据编号后通过工人线程执行与相应任
务编号对应的子任务。该方案中执行模块在接收到与任务编号相应的票据编号后,由工人
线程执行与相应任务编号对应的子任务,从而避免同一子任务被重复执行。
[0017] 另外,控制节点服务器为多个,每个控制节点服务器对其生成的任务清单进行标识;控制节点服务器用于从数据节点服务器获取标记有标识的任务清单的完成情况。该方
案中控制节点服务器可获取任务清单的完成情况,以供子任务委托方查询子任务是否被完
成。
[0018] 另外,控制节点服务器收集子任务,并将所述子任务整理为任务清单,具体为:控制节点服务器将预设时间内收集的多个子任务整理为任务清单,并对所述任务清单标记建
立时间。
[0019] 另外,还包括:数据节点服务器更新标记有所述建立时间的任务清单的状态,所述状态包括执行完毕及未执行完毕;所述运算节点服务器从所述数据节点服务器中承接所述
任务清单,具体为:运算节点服务器从所述数据节点服务器中承接建立时间最早、且状态为
未执行完毕的任务清单。
[0020] 另外,还包括:运算节点服务器在监测到所述任务清单中的子任务执行完成后,发送完成时间至所述数据节点服务器;数据节点服务器记录所述完成时间,并在承接所述任
务清单的所有运算节点服务器均记录有完成时间时,更新所述任务清单的状态为执行完
毕。
[0021] 另外,还包括:控制节点服务器为所述收集模块收集的每个子任务生成对应的任务编号,所述任务清单包含所有子任务的任务编号;控制节点服务器根据所述任务清单创
立票据表单,并将所述票据表单发送至所述数据节点服务器。
[0022] 另外,还包括:所述运算节点服务器生成工人线程,所述工人线程将相应的工人线程名称发送至所述数据节点服务器以申请执行子任务;所述数据节点服务器在所述工人线
程申请执行子任务时,在所述票据表单中创建票据数据,并将与所述票据数据对应的票据
编号回传至所述工人线程;所述票据编号与所述任务编号一一对应;运算节点服务器在接
收到所述票据编号后通过所述工人线程执行与相应任务编号对应的子任务。
[0023] 本发明的任务处理系统由运算节点服务器直接承接任务清单,一次承接便可领取到多个子任务,避免了运算节点服务器频繁领取而造成系统拥堵;且控制节点服务器与多
个运算节点服务器均与数据节点服务器连接,避免控制节点服务器直接连接运算节点服务
器带来的资源调度不平衡问题,实现了运算节点服务器资源的灵活占用。

附图说明

[0024] 一个或多个实施例通过与之对应的附图中的图片进行示例性说明,这些示例性说明并不构成对实施例的限定,附图中具有相同参考数字标号的元件表示为类似的元件,除
非有特别申明,附图中的图不构成比例限制。
[0025] 图1是根据本发明第一实施方式的任务处理系统的结构示意图;
[0026] 图2是根据本发明第一实施方式的控制节点服务器的具体示意图;
[0027] 图3是根据本发明第一实施方式的数据节点服务器的具体示意图;
[0028] 图4是根据本发明第一实施方式的运算节点服务器的具体示意图;
[0029] 图5是根据本发明第一实施方式的控制节点服务器的工作流程示意图;
[0030] 图6是根据本发明第一实施方式的运算节点服务器的工作流程示意图;
[0031] 图7是根据本发明第二实施方式的任务处理系统的结构示意图;
[0032] 图8是根据本发明第三实施方式的任务处理方法的流程示意图。

具体实施方式

[0033] 为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的各实施方式进行详细的阐述。然而,本领域的普通技术人员可以理解,在本发明各实施方
式中,为了使读者更好地理解本申请而提出了许多技术细节。但是,即使没有这些技术细节
和基于以下各实施方式的种种变化和修改,也可以实现本申请所要求保护的技术方案。
[0034] 本发明的第一实施方式涉及一种任务处理系统,如图1所示,本实施方式的核心在于一种任务处理系统,包括:控制节点服务器1、数据节点服务器2以及多个运算节点服务器
3;控制节点服务器1连接数据节点服务器2,用于收集多个子任务,并将多个子任务整理为
任务清单后,将任务清单发送至数据节点服务器2;数据节点服务器2用于接收控制节点服
务器1发送的任务清单;多个运算节点服务器3连接数据节点服务器2,运算节点服务器3用
于从数据节点服务器2中承接任务清单,并生成工人线程,通过工人线程执行所承接的任务
清单中的子任务。由于运算节点服务器3直接承接任务清单,一次承接便可领取到多个子任
务,避免了运算节点服务器3频繁领取而造成系统拥堵;且控制节点服务器1与多个运算节
点服务器3均与数据节点服务器2连接,避免控制节点服务器1直接连接运算节点服务器3带
来的资源调度不平衡问题,实现了运算节点服务器3资源的灵活占用。
[0035] 下面对本实施方式的任务处理系统的实现细节进行具体的说明,以下内容仅为方便理解提供的实现细节,并非实施本方案的必须。
[0036] 本实施方式中控制节点服务器1如图2所示,包括:收集模块11、与收集模块11连接的处理模块12;收集模块11用于收集多个子任务;处理模块12用于将收集模块11预设时间
内收集的子任务整理为任务清单,且对任务清单标记建立时间,并将标记有建立时间的任
务清单发送至数据节点服务器2。数据节点服务器2还用于更新任务清单的状态,状态包括
执行完毕和未执行完毕。运算节点服务器3如图4所示,包括:承接模块31、与承接模块31连
接的执行模块32;承接模块31用于从数据节点服务器2获取建立时间最早、且状态为未执行
完毕的任务清单;执行模块32用于为任务清单的子任务生成工人线程,由工人线程执行子
任务。
[0037] 具体地说,控制节点服务器11具体包括:收集模块11、与收集模块11连接的处理模块12,收集模块11用于收集来自需求方的子任务,此处的需求方可以为任意系统或任意终
端;处理模块12将收集模块11预设时间内收集的多个子任务整理为一个任务清单,并在将
收集到的子任务整理为任务清单时,对该任务清单标记建立时间,将标记有建立时间的任
务清单发送至数据节点服务器2。其中,收集模块11在收集子任务时,将预设时间内收集到
的子任务整理为一个任务清单,从而避免子任务等待处理的时长过长。
[0038] 进一步地,收集模块11也可为每个任务清单设置子任务的上限数量,每个任务清单中子任务的数量不能超过该上限数量,该上限数量可依据运算节点服务器3的平均运算
能力来确定,使得一个任务清单中的子任务的数量与运算节点服务器3的运算能力相差不
大,一个任务清单刚好能够被一个运算节点服务器3承接。
[0039] 数据节点服务器2在接收到控制节点服务器1发送的任务清单时,还用于更新任务清单的状态,状态包括:执行完毕和未执行完毕两种状态。
[0040] 如图4所示,运算节点服务器33具体包括:承接模块31、与承接模块31连接的执行模块32;承接模块31用于从数据节点服务器2获取建立时间最早、且状态为未执行完毕的任
务清单,确保运算节点服务器3承接的任务清单未执行完毕,避免任务清单被重复执行,同
时按照任务清单的建立时间从早到晚地依次承接任务清单,避免建立时间较早的任务清单
等待处理的时长过长。执行模块32用于为任务清单的子任务生成工人线程,由工人线程执
行该任务清单中的子任务。
[0041] 另外,如图3所示,数据节点服务器2包括:接收模块21及与接收模块21连接的记录模块22;接收模块21用于接收控制节点服务器1发送的任务清单;记录模块22用于在运算节
点服务器3承接任务清单后,记录承接任务清单的所有运算节点服务器3的团队称号。
[0042] 本实施方式中由于运算节点服务器3的运算处理能力各不相同,因此,可能会出现同一任务清单被多个运算节点服务器3承接的情况。数据节点服务器2的记录模块22在任务
清单被多个运算节点服务器3承接后,记录承接该任务清单的所有运算节点服务器3的团队
称号,从而便于控制节点服务器1获知该任务清单被哪些运算节点服务器3承接处理。值得
说明的是,本实施方式中的团队称号可以为该运算节点服务器2的网路卡实体位置(MAC)编
号,使避免与其他运算节点服务器2重覆命名。
[0043] 进一步地,如图4所示,运算节点服务器3还包括:监测模块33;监测模块33用于监测运算节点服务器3承接的任务清单中的子任务是否被执行完毕,若监测到子任务被执行
完毕后,发送完成时间至数据节点服务器2;记录模块22还用于记录承接任务清单的所有运
算节点服务器3的完成时间,完成时间与运算节点服务器3的团队称号对应。
[0044] 本实施方式中运算节点服务器3还包括:监测模块33,监测模块33在监测到执行模块32完成任务清单中的子任务后,发送完成时间至数据节点服务器2,由数据节点服务器2
的记录模块22记录承接任务清单的所有运算节点服务器3的完成时间,并将相应的运算节
点服务器3的完成时间与该运算节点服务器3的团队称号对应,从而便于控制节点服务器1
依据团队称号以及与该团队称号对应的完成时间,便能够获知承接该任务清单的哪些运算
节点服务器3处理完成。
[0045] 进一步地,数据节点服务器2还包括:状态更新模块23;状态更新模块23具体用于在承接任务清单的所有运算节点服务器3均记录有完成时间时,更新任务清单的状态为执
行完毕。
[0046] 本实施方式中数据节点服务器2还包括:状态更新模块23,状态更新模块23连接记录模块22,在承接任务清单的所有运算节点服务器3均记录有完成时间,即表示该任务清单
被承接的子任务被全部处理完成、该任务清单被执行完毕,此时,状态更新模块23更新任务
清单的状态位置执行完毕,从而避免已被执行完毕的任务清单被运算节点服务器3重复领
取。
[0047] 值得说明的是,本实施方式中控制节点服务器1还用于从数据节点服务器2获取标记有标识的任务清单的完成情况,从而方便各个控制节点服务器1获取其发送的任务清单
的完成情况。
[0048] 进一步地,数据节点服务器2还包括:清除模块24;清除模块24用于清除状态为执行完毕的任务清单。该方案中数据节点服务器2的清除模块24清除已经执行完毕的任务清
单,避免已经执行完毕的任务清单依据存储在数据节点服务器2中,从而避免了数据节点服
务器2的资源浪费。
[0049] 值得说明的是,监测模块33具体用于监测运算节点服务器3中是否存在工人线程,并在确定无工人线程时,发送完成时间至数据节点服务器2;331还用于在监测模块33发送
完成时间后,承接新的任务清单。
[0050] 具体地说,本实施方式中监测模块33用于确定是否无工人线程工作,并在确定无工人线程工作时,发送完成时间至数据节点服务器2。承接模块31在监测模块33发送完成时
间后,继续承接新的任务清单。运算节点服务器3的承接模块31在监测模块33确定无工人线
程工作,即就是说,该运算节点服务器3承接的任务清单中的子任务被全部执行完毕后,再
继续承接新的任务清单,从而避免了运算节点服务器3在执行子任务过程中仍然继续承接
新的任务清单中的子任务,而影响到运算节点服务器3的处理效率。且值得说明的是,在运
算节点服务器3的工人线程执行子任务时,随着时间的推移,被执行的子任务数量逐渐减
少,从而为剩余的正在执行的工人线程提供更多的资源,使得运算节点服务器3的处理效率
随着时间的增加逐渐提高。
[0051] 另外,如图2所示,处理模块12具体包括:编码子模块121、以及与编码子模块121连接的票据创立子模块122;编码子模块121用于为收集模块11收集的多个子任务的每个子任
务生成对应的任务编号,任务清单包含所有子任务的任务编号;票据创立子模块122用于根
据任务清单创立票据表单,并将票据表单发送至数据节点服务器2。
[0052] 具体地说,本方案中控制节点服务器1的处理模块12包括:编码子模块121、以及与编码子模块121连接的票据创立子模块122。编码子模块121用于为收集模块11收集的每个
子任务生成对应的任务编号,任务编号用于唯一表征子任务,例如:一个任务清单中包含有
10个子任务,则将该10个子任务分别进行标号,每个子任务有一个唯一对应的标号,任务清
单中包含所有子任务的任务编号。票据创立子模块122根据任务清单创立票据表单,并将票
据表单发送至数据节点服务器2。其中,控制节点服务器1的票据创立子模块122在依据任务
清单创建票据表单时,具体为该任务清单生成一个空表单,后续由运算节点服务器3在该票
据表单中进行记录。
[0053] 进一步地,执行模块32用于生成工人线程,由工人线程将相应的工人线程名称发送至数据节点服务器2以申请执行子任务;记录模块22还用于在工人线程申请执行子任务
时,在票据表单中创建票据编号,并将票据编号回传至与工人线程名称对应的工人线程,其
中,票据编号与任务编号一一对应;执行模块还用于在接收到票据编号后通过工人线程执
行与相应任务编号对应的子任务。
[0054] 具体地说,运算节点服务器3的执行模块32在承接任务清单后,可生成最大数目的工人线程,由工人线程将相应的工人线程名称发送至数据节点服务器2以申请执行子任务。
数据节点服务器2的记录模块22在工人线程申请执行子任务时,在票据表单中创建票据编
号,并将票据编号回传至与工人线程名称对应的工人线程,使得工人线程确定需要执行的
子任务的票据编号。值得是说明的是,在将票据编号回传至与工人线程名称对应的工人线
程时,记录模块22还用于在票据表单中记录该票据编号回传的工人线程的工人线程名称,
使得一个票据编号对应的子任务被唯一一个工人线程执行,避免一个子任务被多个工人线
程同时执行。其中,票据编号为一“ID值”,该票据编号与任务编号一一对应,该ID值为初始
值为0、且随着工人线程申请执行的子任务数量的增加而自动递增的整数。
[0055] 需要说明的是,由于运算节点服务器3生成的工人线程数可能不会刚好与承接的任务清单中子任务数目相匹配,当工人线程数超出任务清单中子任务数目的需求,则当超
出的工人线程在申请执行子任务时,在票据表单中创建票据编号,此时判断该票据编号“ID
值”是否小于或等于该项目清单中项目编号的最大值,若小于或等于该项目编号的最大值,
则表明该工人线程申请执行的子任务包含于该项目清单中,该工人线程得到的票据编号有
效,工人线程依据该有效的票据编号执行子任务;若大于该项目编号的最大值,则表明该工
人线程申请执行的子任务不属于该项目清单中,则该工人线程得到的项目票据判定为无效
票据。
[0056] 在运算节点服务器3领取的项目清单中的子任务均被执行,但还有空闲的工人线程时,该运算节点服务器3可撤销空闲的工人线程,从而为其他执行任务中的工人线程提供
更多的资源,以提高其他工人线程的处理效率。
[0057] 下面分别对各个服务器的工作流程进行说明:
[0058] 控制节点服务器1的工作流程示意图如图5所示,步骤S11:启动项目收集接口线程。即就是说,收集来自需求方的子任务。步骤S12:休息预设时间后,张贴任务清单。即就是
说,将预设时间内收集的多个子任务整理为一个任务清单,同时在将收集到的子任务整理
为任务清单时,对该任务清单标记建立时间,将标记有建立时间的任务清单张贴至数据节
点服务器。步骤S13:启用状态咨询接口线程。即就是说,向数据节点服务器2查询任务清单
的完成情况,并将该完成情况告知需求方。步骤S14:清除已经执行完毕的任务。即就是说,
向数据节点服务器2查询到该任务清单被执行完毕后,清除控制节点服务器1中关于该任务
清单的信息。
[0059] 运算节点服务器3的工作流程示意图如图6所示,步骤S21:承接建立时间最早、且状态为未执行完毕的任务清单。即就是说,从数据节点服务器2获取建立时间最早、且状态
为未执行完毕的任务清单,确保运算节点服务器3承接的任务清单未执行完毕,避免任务清
单被重复执行,同时按照任务清单的建立时间从早到晚地依次承接任务清单,避免建立时
间较早的任务清单等待处理的时长过长。步骤S22:生成工人线程并由工人线程将相应的工
人线程名称发送至数据节点服务器以申请执行子任务。即就是说,在承接任务清单后,可生
成最大数目的工人线程,由工人线程将相应的工人线程名称发送至数据节点服务器2以申
请执行子任务。步骤S23:接收到数据节点服务器返回的票据编号后通过工人线程执行与相
应任务编号对应的子任务。即就是说,数据节点服务器2在工人线程申请执行子任务时,在
票据表单中创建票据编号,并将票据编号回传至与工人线程名称对应的工人线程,使得工
人线程确定需要执行的子任务的票据编号。
[0060] 与现有技术相比,本发明实施方式提供了一种任务处理系统,包括:控制节点服务器1、数据节点服务器2以及多个运算节点服务器3;控制节点服务器1连接数据节点服务器
2,用于收集多个子任务,并将多个子任务整理为任务清单后,将任务清单发送至数据节点
服务器2;数据节点服务器2用于接收控制节点服务器1发送的任务清单;多个运算节点服务
器3连接数据节点服务器2,运算节点服务器3用于从数据节点服务器2中承接任务清单,并
生成工人线程,通过工人线程执行所承接的任务清单中的子任务。由于运算节点服务器3直
接承接任务清单,一次承接便可领取到多个子任务,避免了运算节点服务器3频繁领取而造
成系统拥堵;且控制节点服务器1与多个运算节点服务器3均与数据节点服务器2连接,避免
控制节点服务器1直接连接运算节点服务器3带来的资源调度不平衡问题,实现了运算节点
服务器3资源的灵活占用。
[0061] 本发明的第二实施方式涉及一种任务处理系统,第二实施方式是对第一实施方式的改进,主要改进之处在于:控制节点服务器1可获取任务清单的完成情况,以供子任务委
托方查询子任务是否被完成。
[0062] 如图7所示,控制节点服务器1为多个,每个控制节点服务器1对其生成的任务清单进行标识,该标识可以为该控制节点服务器1的地址;控制节点服务器1用于从数据节点服
务器2获取标记有标识的任务清单的完成情况,从而方便各个控制节点服务器1获取其发送
的任务清单的完成情况。
[0063] 本发明的第三实施方式涉及一种任务处理方法,本实施方式中的任务处理方法可应用于第一实施方式中的任务处理系统,本实施方式中的任务处理方法的流程示意图如图
8所示,具体包括:
[0064] 步骤101:控制节点服务器收集子任务,将预设时间内收集的多个子任务整理为任务清单,并对任务清单标记建立时间。
[0065] 步骤102:控制节点服务器将标记有建立时间的任务清单发送至数据节点服务器。
[0066] 针对上述步骤101和步骤102,具体地说,控制节点服务器启动项目收集接口线程,收集来自需求方的子任务,此处的需求方可以为任意系统或任意终端。控制节点服务器将
预设时间内收集到的多个子任务,生成一张项目清单,并为该任务清单标记建立时间,将标
记有建立时间的任务清单发送至数据节点服务器。
[0067] 步骤103:数据节点服务器更新标记有建立时间的任务清单的状态,状态包括执行完毕及未执行完毕。
[0068] 步骤104:运算节点服务器从数据节点服务器中承接建立时间最早、且状态为未执行完毕的任务清单。
[0069] 步骤105:运算节点服务器生成工人线程,通过工人线程执行任务清单中的子任务。
[0070] 针对上述步骤103至步骤105具体地说,运算节点服务器从数据节点服务器获取建立时间最早、且状态为未执行完毕的任务清单,确保运算节点服务器承接的任务清单未执
行完毕,避免任务清单被重复执行,同时按照任务清单的建立时间从早到晚地依次承接任
务清单,避免建立时间较早的任务清单等待处理的时长过长。
[0071] 另外,还包括:运算节点服务器在监测到任务清单中的子任务执行完成后,发送完成时间至数据节点服务器;数据节点服务器记录完成时间,并在承接任务清单的所有运算
节点服务器均记录有完成时间时,更新任务清单的状态为执行完毕。
[0072] 具体地说,由于运算节点服务器的运算处理能力各不相同,因此,可能会出现同一任务清单被多个运算节点服务器承接的情况。数据节点服务器在任务清单被多个运算节点
服务器承接后,记录承接该任务清单的所有运算节点服务器的团队称号,从而便于控制节
点服务器获知该任务清单被哪些运算节点服务器承接处理。值得说明的是,本实施方式中
的团队称号可以为该运算节点服务器的网路卡实体位置(MAC)编号,使避免与其他运算节
点服务器重覆命名。
[0073] 运算节点服务器在监测到完成任务清单中的子任务后,发送完成时间至数据节点服务器,由数据节点服务器记录承接任务清单的所有运算节点服务器的完成时间,并将相
应的运算节点服务器的完成时间与该运算节点服务器的团队称号对应,从而便于控制节点
服务器依据团队称号以及与该团队称号对应的完成时间,便能够获知承接该任务清单的哪
些运算节点服务器处理完成。
[0074] 在承接任务清单的所有运算节点服务器均记录有完成时间,即表示该任务清单被承接的子任务被全部处理完成、该任务清单被执行完毕,此时,数据节点服务器更新任务清
单的状态位置执行完毕,从而避免已被执行完毕的任务清单被运算节点服务器重复领取。
[0075] 另外,还包括:控制节点服务器为收集模块收集的每个子任务生成对应的任务编号,任务清单包含所有子任务的任务编号;控制节点服务器根据任务清单创立票据表单,并
将票据表单发送至数据节点服务器。
[0076] 具体地说,控制节点服务器为收集的每个子任务生成对应的任务编号,任务编号用于唯一表征子任务,例如:一个任务清单中包含有10个子任务,则将该10个子任务分别进
行标号,每个子任务有一个唯一对应的标号,任务清单中包含所有子任务的任务编号。控制
节点服务器根据任务清单创立票据表单,并将票据表单发送至数据节点服务器。其中,控制
节点服务器在依据任务清单创建票据表单时,具体为该任务清单生成一个空表单,后续由
运算节点服务器在该票据表单中进行记录。
[0077] 另外,还包括:运算节点服务器生成工人线程,工人线程将相应的工人线程名称发送至数据节点服务器以申请执行子任务;数据节点服务器在工人线程申请执行子任务时,
在票据表单中创建票据数据,并将与票据数据对应的票据编号回传至工人线程;票据编号
与任务编号一一对应;运算节点服务器在接收到票据编号后通过工人线程执行与相应任务
编号对应的子任务。
[0078] 具体地说,运算节点服务器在承接任务清单后,可生成最大数目的工人线程,由工人线程将相应的工人线程名称发送至数据节点服务器以申请执行子任务。数据节点服务器
在工人线程申请执行子任务时,在票据表单中创建票据编号,并将票据编号回传至与工人
线程名称对应的工人线程,使得工人线程确定需要执行的子任务的票据编号。值得是说明
的是,在将票据编号回传至与工人线程名称对应的工人线程时,数据节点服务器还用于在
票据表单中记录该票据编号回传的工人线程的工人线程名称,使得一个票据编号对应的子
任务被唯一一个工人线程执行,避免一个子任务被多个工人线程同时执行。其中,票据编号
为一“ID值”,该票据编号与任务编号一一对应,该ID值为初始值为0、且随着工人线程申请
执行的子任务数量的增加而自动递增的整数。
[0079] 需要说明的是,本实施方式中的任务处理方法为与第一实施方式对应的方法实施方式,因此,第一实施方式中的实现细节可应用于本实施方式中,本实施方式中的实现细节
也可应用于第一实施方式中。
[0080] 与现有技术相比,本实施方式中提供了一种任务处理方法,包括:控制节点服务器收集子任务,并将子任务整理为任务清单;控制节点服务器将任务清单发送至数据节点服
务器;运算节点服务器从数据节点服务器中承接任务清单;运算节点服务器生成工人线程,
通过工人线程执行任务清单中的子任务。由于运算节点服务器直接承接任务清单,一次承
接便可领取到多个子任务,避免了运算节点服务器频繁领取而造成系统拥堵。
[0081] 本发明的实施方式还提供了一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时实现上述任务处理方法。
[0082] 即,本领域技术人员可以理解,实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序存储在一个存储介质中,包括若干指令用以使
得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例所述方
法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read‑Only 
Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程
序代码的介质。
[0083] 本领域的普通技术人员可以理解,上述各实施方式是实现本发明的具体实施例,而在实际应用中,可以在形式上和细节上对其作各种改变,而不偏离本发明的精神和范围。