CN112783634A - 任务处理系统、方法及计算机可读存储介质 - Google Patents
任务处理系统、方法及计算机可读存储介质 Download PDFInfo
- Publication number
- CN112783634A CN112783634A CN201911075686.XA CN201911075686A CN112783634A CN 112783634 A CN112783634 A CN 112783634A CN 201911075686 A CN201911075686 A CN 201911075686A CN 112783634 A CN112783634 A CN 112783634A
- Authority
- CN
- China
- Prior art keywords
- node server
- task list
- task
- subtasks
- module
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title description 7
- 238000012544 monitoring process Methods 0.000 claims description 25
- 238000003672 processing method Methods 0.000 claims description 18
- 238000004590 computer program Methods 0.000 claims description 4
- 238000010586 diagram Methods 0.000 description 9
- 239000002699 waste material Substances 0.000 description 2
- 230000007423 decrease Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000010926 purge Methods 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
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明实施例涉及计算机技术领域,公开了一种任务处理系统,包括:控制节点服务器、数据节点服务器以及多个运算节点服务器;控制节点服务器连接数据节点服务器,用于收集多个子任务,并将多个子任务整理为任务清单后,将任务清单发送至数据节点服务器;数据节点服务器用于接收控制节点服务器发送的任务清单;多个运算节点服务器连接数据节点服务器,运算节点服务器用于从数据节点服务器中承接任务清单,并生成工人线程,通过工人线程执行所承接的任务清单中的子任务。实现了运算节点服务器资源的灵活占用,且避免运算节点服务器频繁领取子任务,避免造成系统拥堵。
Description
技术领域
本发明实施例涉及计算机技术领域,特别涉及一种任务处理系统、方法及计算机可读存储介质。
背景技术
现有技术中,在分布式环境中进行的子任务处理方法一般通过控制节点服务器和运算节点服务器来实现,具体可以包括下述过程:控制节点服务器与各个运算节点服务器建立连接,以获取各个运算节点服务器的CPU占用率。控制节点服务器根据获取的各个运算节点服务器的CPU占用率,将任务池中预先存储的各任务分发到相应的运算节点服务器进行处理。
然而,发明人发现现有技术中至少存在如下问题:若由控制节点服务器直接连接各个运算节点服务器以分发任务给运算节点服务器进行处理,有可能造成资源分配不均;若由运算节点服务器直接领取任务,有可能造成系统拥堵。
发明内容
本发明实施方式的目的在于提供一种任务处理系统,在实现运算节点服务器资源的灵活占用的同时,还能够避免运算节点服务器频繁领取子任务,避免造成系统拥堵。
为解决上述技术问题,本发明的实施方式提供了一种任务处理系统,包括:控制节点服务器、数据节点服务器以及多个运算节点服务器;控制节点服务器连接数据节点服务器,用于收集多个子任务,并将多个子任务整理为任务清单后,将任务清单发送至数据节点服务器;数据节点服务器用于接收控制节点服务器发送的任务清单;多个运算节点服务器连接数据节点服务器,运算节点服务器用于从数据节点服务器中承接任务清单,并生成工人线程,通过工人线程执行所承接的任务清单中的子任务。
本发明的实施方式还提供了一种任务处理方法,包括:控制节点服务器收集子任务,并将子任务整理为任务清单;控制节点服务器将任务清单发送至数据节点服务器;运算节点服务器从数据节点服务器中承接任务清单;运算节点服务器生成工人线程,通过工人线程执行任务清单中的子任务。
本发明的实施方式还提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述的任务处理方法。
本发明实施方式相对于现有技术而言,提供了一种任务处理系统,包括:控制节点服务器、数据节点服务器以及多个运算节点服务器;控制节点服务器连接数据节点服务器,用于收集多个子任务,并将多个子任务整理为任务清单后,将任务清单发送至数据节点服务器;数据节点服务器用于接收控制节点服务器发送的任务清单;多个运算节点服务器连接数据节点服务器,运算节点服务器用于从数据节点服务器中承接任务清单,并为生成工人线程,通过工人线程执行所承接的任务清单中的子任务。由于运算节点服务器直接承接任务清单,一次承接便可领取到多个子任务,避免了运算节点服务器频繁领取子任务而造成系统拥堵;且控制节点服务器与多个运算节点服务器均与数据节点服务器连接,避免控制节点服务器直接连接运算节点服务器带来的资源调度不平衡问题,实现了运算节点服务器资源的灵活占用。
另外,控制节点服务器包括:收集模块、与收集模块连接的处理模块;收集模块用于收集多个子任务;处理模块用于将收集模块预设时间内收集的子任务整理为任务清单,且对任务清单标记建立时间,并将标记有建立时间的任务清单发送至数据节点服务器;数据节点服务器还用于更新任务清单的状态,状态包括执行完毕及未执行完毕;运算节点服务器包括:承接模块、与承接模块连接的执行模块;承接模块用于从数据节点服务器获取建立时间最早、且状态为未执行完毕的任务清单;执行模块用于为任务清单的子任务生成工人线程,由工人线程执行子任务。
另外,数据节点服务器包括:接收模块及与接收模块连接的记录模块;接收模块用于接收控制节点服务器发送的任务清单;记录模块用于在运算节点服务器承接任务清单后,记录承接任务清单的运算节点服务器的团队称号。该方案中数据节点服务器在任务清单被运算节点服务器承接后,记录承接该任务清单的所有运算节点服务器的团队称号,方便控制节点服务器获知任务清单被哪些运算节点服务器承接。
另外,运算节点服务器还包括:监测模块;监测模块用于监测运算节点服务器承接的任务清单中的子任务是否被执行完毕,若监测到子任务被执行完毕后,发送完成时间至数据节点服务器;记录模块还用于记录承接任务清单的运算节点服务器的完成时间,完成时间与运算节点服务器的团队称号对应。该方案中运算节点服务器执行完子任务后,发送完成时间至数据节点服务器,由数据节点服务器记录完成时间,方便控制节点服务器获知承接该任务清单的哪些运算节点服务器执行完毕。
另外,数据节点服务器还包括:状态更新模块;状态更新模块用于在承接任务清单的所有运算节点服务器对应的团队称号均记录有完成时间时,更新任务清单的状态为执行完毕。该方案中任务清单被执行完毕后,更新任务清单的状态位置执行完毕,从而避免已被执行完毕的任务清单被重复领取。
另外,数据节点服务器还包括:清除模块;清除模块用于清除状态为执行完毕的任务清单。该方案中数据节点服务器清除已经执行完毕的任务清单,避免数据节点服务器的资源浪费。
另外,监测模块具体用于监测运算节点服务器中是否存在工人线程,并在确定无工人线程时,发送完成时间至数据节点服务器;承接模块还用于在监测模块发送完成时间后,承接新的任务清单。该方案中运算节点服务器在确定无工人线程工作时,再继续承接新的任务清单,提高了运算节点服务器的处理效率。
另外,处理模块包括:编码子模块、以及与编码子模块连接的票据创立子模块;编码子模块用于为收集模块收集的多个子任务中的每个子任务生成对应的任务编号,任务清单包含所有子任务的任务编号;票据创立子模块用于根据任务清单创立票据表单,并将票据表单发送至数据节点服务器。
另外,执行模块用于生成工人线程,由工人线程将相应的工人线程名称发送至数据节点服务器以申请执行子任务;记录模块还用于在工人线程申请执行子任务时,在票据表单中创建票据编号,并将票据编号回传至与工人线程名称对应的工人线程,其中,票据编号与任务编号一一对应;执行模块还用于在接收到票据编号后通过工人线程执行与相应任务编号对应的子任务。该方案中执行模块在接收到与任务编号相应的票据编号后,由工人线程执行与相应任务编号对应的子任务,从而避免同一子任务被重复执行。
另外,控制节点服务器为多个,每个控制节点服务器对其生成的任务清单进行标识;控制节点服务器用于从数据节点服务器获取标记有标识的任务清单的完成情况。该方案中控制节点服务器可获取任务清单的完成情况,以供子任务委托方查询子任务是否被完成。
另外,控制节点服务器收集子任务,并将所述子任务整理为任务清单,具体为:控制节点服务器将预设时间内收集的多个子任务整理为任务清单,并对所述任务清单标记建立时间。
另外,还包括:数据节点服务器更新标记有所述建立时间的任务清单的状态,所述状态包括执行完毕及未执行完毕;所述运算节点服务器从所述数据节点服务器中承接所述任务清单,具体为:运算节点服务器从所述数据节点服务器中承接建立时间最早、且状态为未执行完毕的任务清单。
另外,还包括:运算节点服务器在监测到所述任务清单中的子任务执行完成后,发送完成时间至所述数据节点服务器;数据节点服务器记录所述完成时间,并在承接所述任务清单的所有运算节点服务器均记录有完成时间时,更新所述任务清单的状态为执行完毕。
另外,还包括:控制节点服务器为所述收集模块收集的每个子任务生成对应的任务编号,所述任务清单包含所有子任务的任务编号;控制节点服务器根据所述任务清单创立票据表单,并将所述票据表单发送至所述数据节点服务器。
另外,还包括:所述运算节点服务器生成工人线程,所述工人线程将相应的工人线程名称发送至所述数据节点服务器以申请执行子任务;所述数据节点服务器在所述工人线程申请执行子任务时,在所述票据表单中创建票据数据,并将与所述票据数据对应的票据编号回传至所述工人线程;所述票据编号与所述任务编号一一对应;运算节点服务器在接收到所述票据编号后通过所述工人线程执行与相应任务编号对应的子任务。
本发明的任务处理系统由运算节点服务器直接承接任务清单,一次承接便可领取到多个子任务,避免了运算节点服务器频繁领取而造成系统拥堵;且控制节点服务器与多个运算节点服务器均与数据节点服务器连接,避免控制节点服务器直接连接运算节点服务器带来的资源调度不平衡问题,实现了运算节点服务器资源的灵活占用。
附图说明
一个或多个实施例通过与之对应的附图中的图片进行示例性说明,这些示例性说明并不构成对实施例的限定,附图中具有相同参考数字标号的元件表示为类似的元件,除非有特别申明,附图中的图不构成比例限制。
图1是根据本发明第一实施方式的任务处理系统的结构示意图;
图2是根据本发明第一实施方式的控制节点服务器的具体示意图;
图3是根据本发明第一实施方式的数据节点服务器的具体示意图;
图4是根据本发明第一实施方式的运算节点服务器的具体示意图;
图5是根据本发明第一实施方式的控制节点服务器的工作流程示意图;
图6是根据本发明第一实施方式的运算节点服务器的工作流程示意图;
图7是根据本发明第二实施方式的任务处理系统的结构示意图;
图8是根据本发明第三实施方式的任务处理方法的流程示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的各实施方式进行详细的阐述。然而,本领域的普通技术人员可以理解,在本发明各实施方式中,为了使读者更好地理解本申请而提出了许多技术细节。但是,即使没有这些技术细节和基于以下各实施方式的种种变化和修改,也可以实现本申请所要求保护的技术方案。
本发明的第一实施方式涉及一种任务处理系统,如图1所示,本实施方式的核心在于一种任务处理系统,包括:控制节点服务器1、数据节点服务器2以及多个运算节点服务器3;控制节点服务器1连接数据节点服务器2,用于收集多个子任务,并将多个子任务整理为任务清单后,将任务清单发送至数据节点服务器2;数据节点服务器2用于接收控制节点服务器1发送的任务清单;多个运算节点服务器3连接数据节点服务器2,运算节点服务器3用于从数据节点服务器2中承接任务清单,并生成工人线程,通过工人线程执行所承接的任务清单中的子任务。由于运算节点服务器3直接承接任务清单,一次承接便可领取到多个子任务,避免了运算节点服务器3频繁领取而造成系统拥堵;且控制节点服务器1与多个运算节点服务器3均与数据节点服务器2连接,避免控制节点服务器1直接连接运算节点服务器3带来的资源调度不平衡问题,实现了运算节点服务器3资源的灵活占用。
下面对本实施方式的任务处理系统的实现细节进行具体的说明,以下内容仅为方便理解提供的实现细节,并非实施本方案的必须。
本实施方式中控制节点服务器1如图2所示,包括:收集模块11、与收集模块11连接的处理模块12;收集模块11用于收集多个子任务;处理模块12用于将收集模块11预设时间内收集的子任务整理为任务清单,且对任务清单标记建立时间,并将标记有建立时间的任务清单发送至数据节点服务器2。数据节点服务器2还用于更新任务清单的状态,状态包括执行完毕和未执行完毕。运算节点服务器3如图4所示,包括:承接模块31、与承接模块31连接的执行模块32;承接模块31用于从数据节点服务器2获取建立时间最早、且状态为未执行完毕的任务清单;执行模块32用于为任务清单的子任务生成工人线程,由工人线程执行子任务。
具体地说,控制节点服务器11具体包括:收集模块11、与收集模块11连接的处理模块12,收集模块11用于收集来自需求方的子任务,此处的需求方可以为任意系统或任意终端;处理模块12将收集模块11预设时间内收集的多个子任务整理为一个任务清单,并在将收集到的子任务整理为任务清单时,对该任务清单标记建立时间,将标记有建立时间的任务清单发送至数据节点服务器2。其中,收集模块11在收集子任务时,将预设时间内收集到的子任务整理为一个任务清单,从而避免子任务等待处理的时长过长。
进一步地,收集模块11也可为每个任务清单设置子任务的上限数量,每个任务清单中子任务的数量不能超过该上限数量,该上限数量可依据运算节点服务器3的平均运算能力来确定,使得一个任务清单中的子任务的数量与运算节点服务器3的运算能力相差不大,一个任务清单刚好能够被一个运算节点服务器3承接。
数据节点服务器2在接收到控制节点服务器1发送的任务清单时,还用于更新任务清单的状态,状态包括:执行完毕和未执行完毕两种状态。
如图4所示,运算节点服务器33具体包括:承接模块31、与承接模块31连接的执行模块32;承接模块31用于从数据节点服务器2获取建立时间最早、且状态为未执行完毕的任务清单,确保运算节点服务器3承接的任务清单未执行完毕,避免任务清单被重复执行,同时按照任务清单的建立时间从早到晚地依次承接任务清单,避免建立时间较早的任务清单等待处理的时长过长。执行模块32用于为任务清单的子任务生成工人线程,由工人线程执行该任务清单中的子任务。
另外,如图3所示,数据节点服务器2包括:接收模块21及与接收模块21连接的记录模块22;接收模块21用于接收控制节点服务器1发送的任务清单;记录模块22用于在运算节点服务器3承接任务清单后,记录承接任务清单的所有运算节点服务器3的团队称号。
本实施方式中由于运算节点服务器3的运算处理能力各不相同,因此,可能会出现同一任务清单被多个运算节点服务器3承接的情况。数据节点服务器2的记录模块22在任务清单被多个运算节点服务器3承接后,记录承接该任务清单的所有运算节点服务器3的团队称号,从而便于控制节点服务器1获知该任务清单被哪些运算节点服务器3承接处理。值得说明的是,本实施方式中的团队称号可以为该运算节点服务器2的网路卡实体位置(MAC)编号,使避免与其他运算节点服务器2重覆命名。
进一步地,如图4所示,运算节点服务器3还包括:监测模块33;监测模块33用于监测运算节点服务器3承接的任务清单中的子任务是否被执行完毕,若监测到子任务被执行完毕后,发送完成时间至数据节点服务器2;记录模块22还用于记录承接任务清单的所有运算节点服务器3的完成时间,完成时间与运算节点服务器3的团队称号对应。
本实施方式中运算节点服务器3还包括:监测模块33,监测模块33在监测到执行模块32完成任务清单中的子任务后,发送完成时间至数据节点服务器2,由数据节点服务器2的记录模块22记录承接任务清单的所有运算节点服务器3的完成时间,并将相应的运算节点服务器3的完成时间与该运算节点服务器3的团队称号对应,从而便于控制节点服务器1依据团队称号以及与该团队称号对应的完成时间,便能够获知承接该任务清单的哪些运算节点服务器3处理完成。
进一步地,数据节点服务器2还包括:状态更新模块23;状态更新模块23具体用于在承接任务清单的所有运算节点服务器3均记录有完成时间时,更新任务清单的状态为执行完毕。
本实施方式中数据节点服务器2还包括:状态更新模块23,状态更新模块23连接记录模块22,在承接任务清单的所有运算节点服务器3均记录有完成时间,即表示该任务清单被承接的子任务被全部处理完成、该任务清单被执行完毕,此时,状态更新模块23更新任务清单的状态位置执行完毕,从而避免已被执行完毕的任务清单被运算节点服务器3重复领取。
值得说明的是,本实施方式中控制节点服务器1还用于从数据节点服务器2获取标记有标识的任务清单的完成情况,从而方便各个控制节点服务器1获取其发送的任务清单的完成情况。
进一步地,数据节点服务器2还包括:清除模块24;清除模块24用于清除状态为执行完毕的任务清单。该方案中数据节点服务器2的清除模块24清除已经执行完毕的任务清单,避免已经执行完毕的任务清单依据存储在数据节点服务器2中,从而避免了数据节点服务器2的资源浪费。
值得说明的是,监测模块33具体用于监测运算节点服务器3中是否存在工人线程,并在确定无工人线程时,发送完成时间至数据节点服务器2;331还用于在监测模块33发送完成时间后,承接新的任务清单。
具体地说,本实施方式中监测模块33用于确定是否无工人线程工作,并在确定无工人线程工作时,发送完成时间至数据节点服务器2。承接模块31在监测模块33发送完成时间后,继续承接新的任务清单。运算节点服务器3的承接模块31在监测模块33确定无工人线程工作,即就是说,该运算节点服务器3承接的任务清单中的子任务被全部执行完毕后,再继续承接新的任务清单,从而避免了运算节点服务器3在执行子任务过程中仍然继续承接新的任务清单中的子任务,而影响到运算节点服务器3的处理效率。且值得说明的是,在运算节点服务器3的工人线程执行子任务时,随着时间的推移,被执行的子任务数量逐渐减少,从而为剩余的正在执行的工人线程提供更多的资源,使得运算节点服务器3的处理效率随着时间的增加逐渐提高。
另外,如图2所示,处理模块12具体包括:编码子模块121、以及与编码子模块121连接的票据创立子模块122;编码子模块121用于为收集模块11收集的多个子任务的每个子任务生成对应的任务编号,任务清单包含所有子任务的任务编号;票据创立子模块122用于根据任务清单创立票据表单,并将票据表单发送至数据节点服务器2。
具体地说,本方案中控制节点服务器1的处理模块12包括:编码子模块121、以及与编码子模块121连接的票据创立子模块122。编码子模块121用于为收集模块11收集的每个子任务生成对应的任务编号,任务编号用于唯一表征子任务,例如:一个任务清单中包含有10个子任务,则将该10个子任务分别进行标号,每个子任务有一个唯一对应的标号,任务清单中包含所有子任务的任务编号。票据创立子模块122根据任务清单创立票据表单,并将票据表单发送至数据节点服务器2。其中,控制节点服务器1的票据创立子模块122在依据任务清单创建票据表单时,具体为该任务清单生成一个空表单,后续由运算节点服务器3在该票据表单中进行记录。
进一步地,执行模块32用于生成工人线程,由工人线程将相应的工人线程名称发送至数据节点服务器2以申请执行子任务;记录模块22还用于在工人线程申请执行子任务时,在票据表单中创建票据编号,并将票据编号回传至与工人线程名称对应的工人线程,其中,票据编号与任务编号一一对应;执行模块还用于在接收到票据编号后通过工人线程执行与相应任务编号对应的子任务。
具体地说,运算节点服务器3的执行模块32在承接任务清单后,可生成最大数目的工人线程,由工人线程将相应的工人线程名称发送至数据节点服务器2以申请执行子任务。数据节点服务器2的记录模块22在工人线程申请执行子任务时,在票据表单中创建票据编号,并将票据编号回传至与工人线程名称对应的工人线程,使得工人线程确定需要执行的子任务的票据编号。值得是说明的是,在将票据编号回传至与工人线程名称对应的工人线程时,记录模块22还用于在票据表单中记录该票据编号回传的工人线程的工人线程名称,使得一个票据编号对应的子任务被唯一一个工人线程执行,避免一个子任务被多个工人线程同时执行。其中,票据编号为一“ID值”,该票据编号与任务编号一一对应,该ID值为初始值为0、且随着工人线程申请执行的子任务数量的增加而自动递增的整数。
需要说明的是,由于运算节点服务器3生成的工人线程数可能不会刚好与承接的任务清单中子任务数目相匹配,当工人线程数超出任务清单中子任务数目的需求,则当超出的工人线程在申请执行子任务时,在票据表单中创建票据编号,此时判断该票据编号“ID值”是否小于或等于该项目清单中项目编号的最大值,若小于或等于该项目编号的最大值,则表明该工人线程申请执行的子任务包含于该项目清单中,该工人线程得到的票据编号有效,工人线程依据该有效的票据编号执行子任务;若大于该项目编号的最大值,则表明该工人线程申请执行的子任务不属于该项目清单中,则该工人线程得到的项目票据判定为无效票据。
在运算节点服务器3领取的项目清单中的子任务均被执行,但还有空闲的工人线程时,该运算节点服务器3可撤销空闲的工人线程,从而为其他执行任务中的工人线程提供更多的资源,以提高其他工人线程的处理效率。
下面分别对各个服务器的工作流程进行说明:
控制节点服务器1的工作流程示意图如图5所示,步骤S11:启动项目收集接口线程。即就是说,收集来自需求方的子任务。步骤S12:休息预设时间后,张贴任务清单。即就是说,将预设时间内收集的多个子任务整理为一个任务清单,同时在将收集到的子任务整理为任务清单时,对该任务清单标记建立时间,将标记有建立时间的任务清单张贴至数据节点服务器。步骤S13:启用状态咨询接口线程。即就是说,向数据节点服务器2查询任务清单的完成情况,并将该完成情况告知需求方。步骤S14:清除已经执行完毕的任务。即就是说,向数据节点服务器2查询到该任务清单被执行完毕后,清除控制节点服务器1中关于该任务清单的信息。
运算节点服务器3的工作流程示意图如图6所示,步骤S21:承接建立时间最早、且状态为未执行完毕的任务清单。即就是说,从数据节点服务器2获取建立时间最早、且状态为未执行完毕的任务清单,确保运算节点服务器3承接的任务清单未执行完毕,避免任务清单被重复执行,同时按照任务清单的建立时间从早到晚地依次承接任务清单,避免建立时间较早的任务清单等待处理的时长过长。步骤S22:生成工人线程并由工人线程将相应的工人线程名称发送至数据节点服务器以申请执行子任务。即就是说,在承接任务清单后,可生成最大数目的工人线程,由工人线程将相应的工人线程名称发送至数据节点服务器2以申请执行子任务。步骤S23:接收到数据节点服务器返回的票据编号后通过工人线程执行与相应任务编号对应的子任务。即就是说,数据节点服务器2在工人线程申请执行子任务时,在票据表单中创建票据编号,并将票据编号回传至与工人线程名称对应的工人线程,使得工人线程确定需要执行的子任务的票据编号。
与现有技术相比,本发明实施方式提供了一种任务处理系统,包括:控制节点服务器1、数据节点服务器2以及多个运算节点服务器3;控制节点服务器1连接数据节点服务器2,用于收集多个子任务,并将多个子任务整理为任务清单后,将任务清单发送至数据节点服务器2;数据节点服务器2用于接收控制节点服务器1发送的任务清单;多个运算节点服务器3连接数据节点服务器2,运算节点服务器3用于从数据节点服务器2中承接任务清单,并生成工人线程,通过工人线程执行所承接的任务清单中的子任务。由于运算节点服务器3直接承接任务清单,一次承接便可领取到多个子任务,避免了运算节点服务器3频繁领取而造成系统拥堵;且控制节点服务器1与多个运算节点服务器3均与数据节点服务器2连接,避免控制节点服务器1直接连接运算节点服务器3带来的资源调度不平衡问题,实现了运算节点服务器3资源的灵活占用。
本发明的第二实施方式涉及一种任务处理系统,第二实施方式是对第一实施方式的改进,主要改进之处在于:控制节点服务器1可获取任务清单的完成情况,以供子任务委托方查询子任务是否被完成。
如图7所示,控制节点服务器1为多个,每个控制节点服务器1对其生成的任务清单进行标识,该标识可以为该控制节点服务器1的地址;控制节点服务器1用于从数据节点服务器2获取标记有标识的任务清单的完成情况,从而方便各个控制节点服务器1获取其发送的任务清单的完成情况。
本发明的第三实施方式涉及一种任务处理方法,本实施方式中的任务处理方法可应用于第一实施方式中的任务处理系统,本实施方式中的任务处理方法的流程示意图如图8所示,具体包括:
步骤101:控制节点服务器收集子任务,将预设时间内收集的多个子任务整理为任务清单,并对任务清单标记建立时间。
步骤102:控制节点服务器将标记有建立时间的任务清单发送至数据节点服务器。
针对上述步骤101和步骤102,具体地说,控制节点服务器启动项目收集接口线程,收集来自需求方的子任务,此处的需求方可以为任意系统或任意终端。控制节点服务器将预设时间内收集到的多个子任务,生成一张项目清单,并为该任务清单标记建立时间,将标记有建立时间的任务清单发送至数据节点服务器。
步骤103:数据节点服务器更新标记有建立时间的任务清单的状态,状态包括执行完毕及未执行完毕。
步骤104:运算节点服务器从数据节点服务器中承接建立时间最早、且状态为未执行完毕的任务清单。
步骤105:运算节点服务器生成工人线程,通过工人线程执行任务清单中的子任务。
针对上述步骤103至步骤105具体地说,运算节点服务器从数据节点服务器获取建立时间最早、且状态为未执行完毕的任务清单,确保运算节点服务器承接的任务清单未执行完毕,避免任务清单被重复执行,同时按照任务清单的建立时间从早到晚地依次承接任务清单,避免建立时间较早的任务清单等待处理的时长过长。
另外,还包括:运算节点服务器在监测到任务清单中的子任务执行完成后,发送完成时间至数据节点服务器;数据节点服务器记录完成时间,并在承接任务清单的所有运算节点服务器均记录有完成时间时,更新任务清单的状态为执行完毕。
具体地说,由于运算节点服务器的运算处理能力各不相同,因此,可能会出现同一任务清单被多个运算节点服务器承接的情况。数据节点服务器在任务清单被多个运算节点服务器承接后,记录承接该任务清单的所有运算节点服务器的团队称号,从而便于控制节点服务器获知该任务清单被哪些运算节点服务器承接处理。值得说明的是,本实施方式中的团队称号可以为该运算节点服务器的网路卡实体位置(MAC)编号,使避免与其他运算节点服务器重覆命名。
运算节点服务器在监测到完成任务清单中的子任务后,发送完成时间至数据节点服务器,由数据节点服务器记录承接任务清单的所有运算节点服务器的完成时间,并将相应的运算节点服务器的完成时间与该运算节点服务器的团队称号对应,从而便于控制节点服务器依据团队称号以及与该团队称号对应的完成时间,便能够获知承接该任务清单的哪些运算节点服务器处理完成。
在承接任务清单的所有运算节点服务器均记录有完成时间,即表示该任务清单被承接的子任务被全部处理完成、该任务清单被执行完毕,此时,数据节点服务器更新任务清单的状态位置执行完毕,从而避免已被执行完毕的任务清单被运算节点服务器重复领取。
另外,还包括:控制节点服务器为收集模块收集的每个子任务生成对应的任务编号,任务清单包含所有子任务的任务编号;控制节点服务器根据任务清单创立票据表单,并将票据表单发送至数据节点服务器。
具体地说,控制节点服务器为收集的每个子任务生成对应的任务编号,任务编号用于唯一表征子任务,例如:一个任务清单中包含有10个子任务,则将该10个子任务分别进行标号,每个子任务有一个唯一对应的标号,任务清单中包含所有子任务的任务编号。控制节点服务器根据任务清单创立票据表单,并将票据表单发送至数据节点服务器。其中,控制节点服务器在依据任务清单创建票据表单时,具体为该任务清单生成一个空表单,后续由运算节点服务器在该票据表单中进行记录。
另外,还包括:运算节点服务器生成工人线程,工人线程将相应的工人线程名称发送至数据节点服务器以申请执行子任务;数据节点服务器在工人线程申请执行子任务时,在票据表单中创建票据数据,并将与票据数据对应的票据编号回传至工人线程;票据编号与任务编号一一对应;运算节点服务器在接收到票据编号后通过工人线程执行与相应任务编号对应的子任务。
具体地说,运算节点服务器在承接任务清单后,可生成最大数目的工人线程,由工人线程将相应的工人线程名称发送至数据节点服务器以申请执行子任务。数据节点服务器在工人线程申请执行子任务时,在票据表单中创建票据编号,并将票据编号回传至与工人线程名称对应的工人线程,使得工人线程确定需要执行的子任务的票据编号。值得是说明的是,在将票据编号回传至与工人线程名称对应的工人线程时,数据节点服务器还用于在票据表单中记录该票据编号回传的工人线程的工人线程名称,使得一个票据编号对应的子任务被唯一一个工人线程执行,避免一个子任务被多个工人线程同时执行。其中,票据编号为一“ID值”,该票据编号与任务编号一一对应,该ID值为初始值为0、且随着工人线程申请执行的子任务数量的增加而自动递增的整数。
需要说明的是,本实施方式中的任务处理方法为与第一实施方式对应的方法实施方式,因此,第一实施方式中的实现细节可应用于本实施方式中,本实施方式中的实现细节也可应用于第一实施方式中。
与现有技术相比,本实施方式中提供了一种任务处理方法,包括:控制节点服务器收集子任务,并将子任务整理为任务清单;控制节点服务器将任务清单发送至数据节点服务器;运算节点服务器从数据节点服务器中承接任务清单;运算节点服务器生成工人线程,通过工人线程执行任务清单中的子任务。由于运算节点服务器直接承接任务清单,一次承接便可领取到多个子任务,避免了运算节点服务器频繁领取而造成系统拥堵。
本发明的实施方式还提供了一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时实现上述任务处理方法。
即,本领域技术人员可以理解,实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
本领域的普通技术人员可以理解,上述各实施方式是实现本发明的具体实施例,而在实际应用中,可以在形式上和细节上对其作各种改变,而不偏离本发明的精神和范围。
Claims (17)
1.一种任务处理系统,其特征在于,包括:控制节点服务器、数据节点服务器以及多个运算节点服务器;
所述控制节点服务器连接所述数据节点服务器,用于收集多个子任务,并将多个所述子任务整理为任务清单后,将所述任务清单发送至所述数据节点服务器;
所述数据节点服务器用于接收所述控制节点服务器发送的所述任务清单;
多个所述运算节点服务器连接所述数据节点服务器,所述运算节点服务器用于从所述数据节点服务器中承接所述任务清单,并生成工人线程,通过所述工人线程执行所承接的任务清单中的子任务。
2.根据权利要求1所述的任务处理系统,其特征在于,所述控制节点服务器包括:收集模块、与所述收集模块连接的处理模块;
所述收集模块用于收集多个子任务;
所述处理模块用于将所述收集模块预设时间内收集的所述子任务整理为任务清单,且对所述任务清单标记建立时间,并将标记有所述建立时间的任务清单发送至所述数据节点服务器;
所述数据节点服务器还用于更新所述任务清单的状态,所述状态包括执行完毕及未执行完毕;
所述运算节点服务器包括:承接模块、与所述承接模块连接的执行模块;
所述承接模块用于从所述数据节点服务器获取建立时间最早、且状态为未执行完毕的任务清单;
所述执行模块用于为所述任务清单的子任务生成工人线程,由所述工人线程执行所述子任务。
3.根据权利要求1所述的任务处理系统,其特征在于,所述数据节点服务器包括:接收模块及与所述接收模块连接的记录模块;
所述接收模块用于接收所述控制节点服务器发送的任务清单;
所述记录模块用于在运算节点服务器承接所述任务清单后,记录承接所述任务清单的运算节点服务器的团队称号。
4.根据权利要求3所述的任务处理系统,其特征在于,所述运算节点服务器还包括:监测模块;
所述监测模块用于监测所述运算节点服务器承接的所述任务清单中的子任务是否被执行完毕,若监测到所述子任务被执行完毕后,发送完成时间至所述数据节点服务器;
所述记录模块还用于记录承接所述任务清单的所有运算节点服务器的完成时间,所述完成时间与所述运算节点服务器的团队称号对应。
5.根据权利要求4所述的任务处理系统,其特征在于,所述数据节点服务器还包括:状态更新模块;
所述状态更新模块用于在承接所述任务清单的所有运算节点服务器对应的团队称号均记录有完成时间时,更新所述任务清单的状态为执行完毕。
6.根据权利要求5所述的任务处理系统,其特征在于,所述数据节点服务器还包括:清除模块;
所述清除模块用于清除状态为执行完毕的任务清单。
7.根据权利要求4所述的任务处理系统,其特征在于,所述监测模块具体用于监测所述运算节点服务器中是否存在工人线程,并在确定无工人线程时,发送所述完成时间至所述数据节点服务器;
所述承接模块还用于在所述监测模块发送所述完成时间后,承接新的任务清单。
8.根据权利要求3所述的任务处理系统,其特征在于,所述处理模块包括:编码子模块、以及与所述编码子模块连接的票据创立子模块;
所述编码子模块用于为所述收集模块收集的多个子任务中的每个子任务生成对应的任务编号,所述任务清单包含所有子任务的任务编号;
所述票据创立子模块用于根据所述任务清单创立票据表单,并将所述票据表单发送至所述数据节点服务器。
9.根据权利要求8所述的任务处理系统,其特征在于,所述执行模块用于生成工人线程,由所述工人线程将相应的工人线程名称发送至所述数据节点服务器以申请执行子任务;
所述记录模块还用于在所述工人线程申请执行子任务时,在所述票据表单中创建票据编号,并将所述票据编号回传至与所述工人线程名称对应的工人线程,其中,所述票据编号与所述任务编号一一对应;
所述执行模块还用于在接收到所述票据编号后通过所述工人线程执行与相应任务编号对应的子任务。
10.根据权利要求1所述的任务处理系统,其特征在于,所述控制节点服务器为多个,每个所述控制节点服务器对其生成的任务清单进行标识;
所述控制节点服务器用于从所述数据节点服务器获取标记有所述标识的任务清单的完成情况。
11.一种任务处理方法,其特征在于,包括:
控制节点服务器收集子任务,并将所述子任务整理为任务清单;
控制节点服务器将所述任务清单发送至数据节点服务器;
运算节点服务器从所述数据节点服务器中承接所述任务清单;
运算节点服务器生成工人线程,通过所述工人线程执行所述任务清单中的子任务。
12.根据权利要求11所述的任务处理方法,其特征在于,所述控制节点服务器收集子任务,并将所述子任务整理为任务清单,具体为:
控制节点服务器将预设时间内收集的多个子任务整理为任务清单,并对所述任务清单标记建立时间。
13.根据权利要求12所述的任务处理方法,其特征在于,还包括:
数据节点服务器更新标记有所述建立时间的任务清单的状态,所述状态包括执行完毕及未执行完毕;
所述运算节点服务器从所述数据节点服务器中承接所述任务清单,具体为:
运算节点服务器从所述数据节点服务器中承接建立时间最早、且状态为未执行完毕的任务清单。
14.根据权利要求11所述的任务处理方法,其特征在于,还包括:
运算节点服务器在监测到所述任务清单中的子任务执行完成后,发送完成时间至所述数据节点服务器;
数据节点服务器记录所述完成时间,并在承接所述任务清单的所有运算节点服务器均记录有完成时间时,更新所述任务清单的状态为执行完毕。
15.根据权利要求11所述的任务处理方法,其特征在于,还包括:
控制节点服务器为所述收集模块收集的每个子任务生成对应的任务编号,所述任务清单包含所有子任务的任务编号;
控制节点服务器根据所述任务清单创立票据表单,并将所述票据表单发送至所述数据节点服务器。
16.根据权利要求15所述的任务处理方法,其特征在于,还包括:
所述运算节点服务器生成工人线程,所述工人线程将相应的工人线程名称发送至所述数据节点服务器以申请执行子任务;
所述数据节点服务器在所述工人线程申请执行子任务时,在所述票据表单中创建票据数据,并将与所述票据数据对应的票据编号回传至所述工人线程;所述票据编号与所述任务编号一一对应;
运算节点服务器在接收到所述票据编号后通过所述工人线程执行与相应任务编号对应的子任务。
17.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求11-16任一项所述的任务处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911075686.XA CN112783634B (zh) | 2019-11-06 | 2019-11-06 | 任务处理系统、方法及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911075686.XA CN112783634B (zh) | 2019-11-06 | 2019-11-06 | 任务处理系统、方法及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112783634A true CN112783634A (zh) | 2021-05-11 |
CN112783634B CN112783634B (zh) | 2022-04-26 |
Family
ID=75747499
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911075686.XA Active CN112783634B (zh) | 2019-11-06 | 2019-11-06 | 任务处理系统、方法及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112783634B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090158083A1 (en) * | 2007-12-17 | 2009-06-18 | Electronics And Telecommunications Research Institute | Cluster system and method for operating the same |
WO2016206564A1 (zh) * | 2015-06-26 | 2016-12-29 | 阿里巴巴集团控股有限公司 | 作业调度方法、装置及分布式系统 |
CN107153573A (zh) * | 2016-03-02 | 2017-09-12 | 阿里巴巴集团控股有限公司 | 分布式任务处理方法和装置 |
CN107688500A (zh) * | 2017-07-26 | 2018-02-13 | 阿里巴巴集团控股有限公司 | 一种分布式任务处理方法、装置、系统及设备 |
CN108833497A (zh) * | 2018-05-25 | 2018-11-16 | 徐工集团工程机械有限公司 | 分布式发布方法和系统、用户终端、服务器和发布设备 |
CN109901926A (zh) * | 2019-01-25 | 2019-06-18 | 平安科技(深圳)有限公司 | 基于大数据行为调度应用任务的方法、服务器及存储介质 |
CN110287033A (zh) * | 2019-07-03 | 2019-09-27 | 网易(杭州)网络有限公司 | 批量任务处理方法、装置、系统、设备和可读存储介质 |
-
2019
- 2019-11-06 CN CN201911075686.XA patent/CN112783634B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090158083A1 (en) * | 2007-12-17 | 2009-06-18 | Electronics And Telecommunications Research Institute | Cluster system and method for operating the same |
WO2016206564A1 (zh) * | 2015-06-26 | 2016-12-29 | 阿里巴巴集团控股有限公司 | 作业调度方法、装置及分布式系统 |
CN107153573A (zh) * | 2016-03-02 | 2017-09-12 | 阿里巴巴集团控股有限公司 | 分布式任务处理方法和装置 |
CN107688500A (zh) * | 2017-07-26 | 2018-02-13 | 阿里巴巴集团控股有限公司 | 一种分布式任务处理方法、装置、系统及设备 |
CN108833497A (zh) * | 2018-05-25 | 2018-11-16 | 徐工集团工程机械有限公司 | 分布式发布方法和系统、用户终端、服务器和发布设备 |
CN109901926A (zh) * | 2019-01-25 | 2019-06-18 | 平安科技(深圳)有限公司 | 基于大数据行为调度应用任务的方法、服务器及存储介质 |
CN110287033A (zh) * | 2019-07-03 | 2019-09-27 | 网易(杭州)网络有限公司 | 批量任务处理方法、装置、系统、设备和可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112783634B (zh) | 2022-04-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8087026B2 (en) | Fair share scheduling based on an individual user's resource usage and the tracking of that usage | |
US8607236B2 (en) | Information processing system | |
JP2008527514A5 (zh) | ||
CN102387173A (zh) | 一种MapReduce系统及其调度任务的方法和装置 | |
US10606650B2 (en) | Methods and nodes for scheduling data processing | |
CN111190691A (zh) | 适用于虚拟机的自动迁移方法、系统、装置及存储介质 | |
EP3018581B1 (en) | Data staging management system | |
CN109669915A (zh) | 一种计算机任务管理方法、装置及相关设备 | |
CN111552558A (zh) | 异构云资源的调度方法及装置 | |
CN111709723A (zh) | Rpa业务流程智能处理方法、装置、计算机设备和存储介质 | |
CN101576831A (zh) | 一种分布式计算系统及实现方法 | |
US7987225B2 (en) | Method for remembering resource allocation in grids | |
CN109189581A (zh) | 一种作业调度方法和装置 | |
CN112783634B (zh) | 任务处理系统、方法及计算机可读存储介质 | |
CN110750350B (zh) | 一种大资源调度方法、系统、装置及可读存储介质 | |
CN113301087A (zh) | 资源调度方法、装置、计算设备和介质 | |
JP6039791B2 (ja) | スケジュール決定装置及び決定方法 | |
CN107239328A (zh) | 任务分配方法及装置 | |
US20100100884A1 (en) | Load balancing using distributed printing devices | |
JP4232109B2 (ja) | リアルタイム処理システム、処理装置、リアルタイム処理方法、及びプログラム | |
CN114579275A (zh) | 分布式任务推送方法及装置、电子设备、存储介质 | |
CN111343101B (zh) | 服务器限流方法、装置、电子设备及可读存储介质 | |
JPH11120147A (ja) | 負荷分散制御方法 | |
US20090144256A1 (en) | Workflow control in a resource hierarchy | |
US8804173B2 (en) | Apparatus management device and method for merging additional information identifiers into information acquisition requests |
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 |