CN114816709A - 任务调度方法、装置、服务器及可读存储介质 - Google Patents

任务调度方法、装置、服务器及可读存储介质 Download PDF

Info

Publication number
CN114816709A
CN114816709A CN202210495454.5A CN202210495454A CN114816709A CN 114816709 A CN114816709 A CN 114816709A CN 202210495454 A CN202210495454 A CN 202210495454A CN 114816709 A CN114816709 A CN 114816709A
Authority
CN
China
Prior art keywords
processed
task
subtasks
tasks
priority
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
Application number
CN202210495454.5A
Other languages
English (en)
Inventor
廖山清
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Knownsec Information Technology Co Ltd
Original Assignee
Beijing Knownsec Information Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Knownsec Information Technology Co Ltd filed Critical Beijing Knownsec Information Technology Co Ltd
Priority to CN202210495454.5A priority Critical patent/CN114816709A/zh
Publication of CN114816709A publication Critical patent/CN114816709A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2457Query processing with adaptation to user needs
    • G06F16/24578Query processing with adaptation to user needs using ranking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本申请的实施例提供了一种任务调度方法、装置、服务器及可读存储介质,涉及计算机技术领域,调度器向分布式任务队列请求空闲进程数量,之后根据空闲进程数量获取对应的待处理任务以及与待处理任务对应的优先级,然后根据优先级和第一预设时段,对待处理任务进行拆分以获得与每个待处理任务对应的子任务,并将其分发至工作节点来执行子任务,通过空闲进程数量对待处理任务进行获取,避免了大量待处理任务在队列中等待所造成的资源大量浪费的问题,也简化了对任务的管理,此外在任务调度的过程中加入优先级和等待时间来拆分待处理任务,使得高优先级的任务优先执行,合理地分配了资源。

Description

任务调度方法、装置、服务器及可读存储介质
技术领域
本申请涉及计算机技术领域,具体而言,涉及一种任务调度方法、装置、服务器及可读存储介质。
背景技术
目前,随着互联网的发展,对大量信息的快速处理的需求变得很迫切。因此数据的处理就变得很重要。而在数据库服务器终端,常常会出现高并发请求的场景,即同时收到多个在数据库中查找目标信息的请求,服务器需要进行资源调度和任务执行。现有的策略是:先创建所有任务,在创建完成之后,由于任务的执行是由节点所完成,所以就要将创建好的任务分配到对应的节点上运行,由于节点的资源是有限的,一次能够处理的任务也是有限的,所以就要将创建好的任务放入队列中进行等待,但是在任务数量非常多的情况下,会造成任务的等待时间过长,队列中的任务数量过多的情况,这样就会占用服务器大量内存,进而影响服务器运行的性能,并且不利于任务的管理。
因此,如何简化对任务的管理,使其更加快捷高效,成为本领域人员要考虑的问题。
发明内容
本申请提供了一种任务调度方法、装置、服务器及可读存储介质,其能够简化对任务的管理,避免了大量待处理任务在队列中等待所造成的资源大量浪费的问题。
为了实现上述目的,本申请实施例采用的技术方案如下:
第一方面,本申请实施例提供了一种任务调度方法,应用于调度器,所述方法包括:
向分布式任务队列请求空闲进程数量;
根据所述空闲进程数量获取对应的至少一个待处理任务以及与所述待处理任务一一对应的优先级;
根据所述优先级和第一预设时段,对所述待处理任务进行拆分以获得与每个所述待处理任务一一对应的至少一个子任务;
将所述子任务分发至工作节点使得所述工作节点执行所述子任务。
进一步的,所述根据所述优先级和第一预设时段,对所述待处理任务进行拆分以获得与每个所述待处理任务一一对应的至少一个子任务的步骤,包括:
根据所述优先级计算所述优先级的权重系数;
根据所述权重系数和第一预设时段对所述待处理任务进行拆分以获得与每个所述待处理任务一一对应的至少一个子任务。
进一步的,所述调度器包括数据库,所述数据库中存储有所述待处理任务与子任务的关系表,所述将所述子任务发送至工作节点执行以完成任务调度的步骤,包括:
若所述待处理任务的状态信息发生改变时,根据所述关系表对应改变所述子任务的状态信息;
根据所述关系表从所述数据库中查询所述子任务的状态信息;
将所述状态信息发送至所述工作节点使得所述工作节点根据所述子任务的状态信息执行所述子任务。
进一步的,所述子任务的状态信息为可执行和不可执行,所述工作节点根据所述子任务的状态信息执行所述子任务的步骤,包括:
若接收到的所述子任务的状态信息为可执行,则所述工作节点执行所述子任务;
若接收到的所述子任务的状态信息为不可执行,则所述工作节点不执行所述子任务。
进一步的,所述工作节点执行所述子任务的步骤,包括:
所述工作节点按照串行或者并行顺序执行所述子任务。
进一步的,在所述根据所述优先级和第一预设时段,对所述待处理任务进行拆分以获得与每个所述待处理任务一一对应的至少一个子任务的步骤之后,还包括:
每隔第二预设时段,采用轮询方式重新请求所述空闲进程数量。
第二方面,本申请实施例还提供了一种任务调度装置,应用于调度器,所述装置包括:
请求模块,用于向分布式任务队列请求空闲进程数量;
获取模块,用于根据所述空闲进程数量获取对应的至少一个待处理任务以及与所述待处理任务一一对应的优先级;
拆分模块,用于根据所述优先级和第一预设时段,对所述待处理任务进行拆分以获得与每个所述待处理任务一一对应的至少一个子任务;
分发模块,用于将所述子任务分发至工作节点使得所述工作节点执行所述子任务。
进一步的,所述拆分模块具体用于:
根据所述优先级确定所述优先级的权重系数;
根据所述权重系数和第一预设时段对所述待处理任务进行拆分以获得与每个所述待处理任务一一对应的至少一个子任务。
第三方面,本申请实施例还提供了一种服务器,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的程序指令,当所述服务器运行时,所述处理器与所述存储器之间通过总线通信,所述处理器执行所述程序指令,以执行时执行如第一方面中任一所述的任务调度方法。
第四方面,本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行如第一方面中任意一项所述的任务调度方法。
相对现有技术,本申请实施例提出一种任务调度方法、装置、服务器及可读存储介质,首先调度器向分布式任务队列请求空闲进程数量,之后根据空闲进程数量获取对应的待处理任务以及与待处理任务对应的优先级,然后根据优先级和第一预设时段,对待处理任务进行拆分以获得与每个待处理任务对应的子任务,并将其分发至工作节点来执行子任务,通过空闲进程数量对待处理任务进行获取,避免了大量待处理任务在队列中等待所造成的资源大量浪费的问题,也简化了对任务的管理,此外在任务调度的过程中加入优先级和等待时间来拆分待处理任务,使得高优先级的任务优先执行,合理地分配了资源。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了本申请实施例提供的任务调度方法的流程示意图。
图2示出了本申请实施例提供的任务调度方法中步骤S130的流程示意图。
图3示出了本申请实施例提供的任务调度方法中步骤S140的流程示意图。
图4示出了本申请实施例提供的任务调度方法的应用示意图。
图5示出了本申请实施例提供的任务调度装置的结构示意图。
图6示出了本申请实施例提供的服务器的结构示意图。
图标:100-任务调度装置;110-请求模块;120-获取模块;130-拆分模块;140-分发模块;11-处理器;12-存储器;13-总线。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。
因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
需要说明的是,在不冲突的情况下,本申请的实施例中的特征可以相互结合。
任务调度是网格计算(Grid Computing)、大型分布式数据库系统(DistributedDatabase System)、以及云计算(Cloud Computing)系统的一个关键问题,是将待处理任务发送到对应的节点上执行的过程。现有的任务调度策略是:先创建所有任务,在创建完成之后,由于任务的执行是由节点所完成,所以就要将创建好的任务分配到对应的节点上运行,由于节点的资源是有限的,一次能够处理的任务也是有限的,所以就要将创建好的任务放入队列中进行等待,但是在任务数量非常多的情况下,那么在队列中的等待的任务数量也会非常多,会造成任务的等待时间过长的情况,这样就会占用服务器大量内存,进而影响服务器运行的性能,并且不利于任务的管理,如果此时对任务的状态进行修改,其耗费的资源也会增多。
针对上述技术问题,本申请实施例提供一种任务调度方法、装置、服务器及可读存储介质,能够简化对任务的管理,避免了大量待处理任务在队列中等待所造成的资源大量浪费的问题,下面对此进行详细介绍。
首先,应用于本申请中的任务调度方法的调度器可以通过各种形式来实施,其可以为执行周期性函数scheduler_tick()的周期性调度器,也可以为主调度函数schedule()的主调度器,还可以为其他类型的调度器,本申请实施例对此不作任何限定。
调度器作为单独的程序运行,启动之后会不断向分布式任务队列请求空闲进程数量,获取对应的至少一个待处理任务以及对应的优先级,结合第一预设时段对待处理任务拆分以获得与对应的子任务,并将其分发至工作节点执行。
请参考图1,图1示出了本申请实施例提供的任务调度方法的流程示意图,该任务调度方法应用于调度器中,包括以下步骤S110~S140:
S110、向分布式任务队列请求空闲进程数量。
其中分布式任务队列可以为各种合适的分布式队列,例如Celery分布式任务队列。Celery分布式任务队列是一个基于python开发的分布式异步消息任务队列,通过该开源分布式任务队列可以轻松地实现任务的异步处理。其具备灵活、个性化的配置,满足绝大多数的应用场景需求。
在请求空闲进程数量之前,调度器会先对待处理任务进行查询,在查询到有待处理任务之后,才会向分布式任务队列发送进程数量请求,通过分布式任务队列的接口去获取分布式任务队列的空闲进程数量,如果没有查询到待处理任务,则在创建完成待处理任务之后再发送进程数量请求。
值得说明的是,空闲进程数量可以根据分布式任务队列根据内存性能数据、CPU性能数据、I/O性能数据或网络状态数据中的一种或多种进行对应的增加或减少,以使得空闲进程数量能够相匹配,从而避免机器资源的浪费。
S120、根据空闲进程数量获取对应的至少一个待处理任务以及与所述待处理任务一一对应的优先级。
调度器在得到空闲进程数量之后,会获取与空闲进程数量一致的待处理任务,例如当空闲进程数量为三个时,会获取到三个待处理任务。由于不同的待处理任务都会有不同的优先级,而每个待处理任务都会携带有自身的优先级信息,该优先级信息能够反映出每个任务的重要性和紧急程度,来确定每个任务的优先级,其中待处理任务的优先级可以包括高、中、低三个等级,也可以包括多个等级,本申请实施例对此并不限定。
S130、根据所述优先级和第一预设时段,对所述待处理任务进行拆分以获得与每个所述待处理任务一一对应的至少一个子任务。
其中,第一预设时段可以是但不限于几十毫秒、几秒或十几秒,还可以根据执行一个待执行任务的时间进行设置,根据实际需求进行设置即可,在此不作任何限定。
在多个待处理任务的拆分过程当中,一些方法忽略了任务的优先级,导致重要的任务不能及时得到处理,而在本申请实施例中,在拆分待处理任务时,按照优先级的顺序来拆分,高优先级的任务获取全部资源,优先被拆分,低优先级的任务在等待第一预设时段之后才进行拆分。
值得说明的是,如果第一预设时段过长,低优先级的任务也可以在等待高优先级的任务全部拆分完毕后才会拆分。
S140、将子任务分发至工作节点使得所述工作节点执行子任务。
其中,工作节点(worker)用于执行分配的子任务,也称为执行器,其中,worker具有存活性,只有处于存活状态(alive worker)时,worker才执行分配的任务。
本申请实施例提出一种任务调度方法、装置、服务器及可读存储介质,首先调度器向分布式任务队列请求空闲进程数量,之后根据空闲进程数量获取对应的待处理任务以及与待处理任务对应的优先级,然后根据优先级和第一预设时段,对待处理任务进行拆分以获得与每个待处理任务对应的子任务,并将其分发至工作节点来执行子任务,通过空闲进程数量对待处理任务进行获取,避免了大量待处理任务在队列中等待所造成的资源大量浪费的问题,也简化了对任务的管理,此外在任务调度的过程中加入优先级和等待时间来拆分待处理任务,使得高优先级的任务优先执行,合理地分配了资源。
为了根据优先级和等待时间得到子任务,请在图1的基础上参照图2,图2示出了本申请实施例提供的任务调度方法中步骤S130的流程示意图,步骤S130包括:
S131、根据优先级计算所述优先级的权重系数。
优先极的权重系数为当前待处理任务的优先级在整个待处理任务优先级的百分比,为了更好地对待处理任务进行拆分,能够通过优先级来计算出权重系数。
对于S131,需要说明的是,计算权重系数的具体方式不受限制,可以根据实际应用需求进行设置,例如,在一种可以替代的示例中,三个待处理任务的优先级分别为高、中、低三个优先级,能够通过不同的数字表示优先级,高优先级的待处理任务为50,中优先级的待处理任务为30,低优先级的待处理任务为20,那么高优先级的权重系数可以为:50/(20+30+50)=0.5,中优先级的权重系数可以为:30/(20+30+50)=0.3,低优先级的权重系数可以为20/(20+30+50)=0.2。
S132、根据所述权重系数和第一等待时间对所述待处理任务进行拆分以获得与每个所述待处理任务一一对应的至少一个子任务。
调度器按照权重系数由高到低的顺序依次拆分待处理任务,同时按照第一等待时间的时序依次拆分下一优先级的待处理任务,得到与待处理任务对应的子任务,其中拆分的子任务数量根据权重系数和空闲进程数量的乘积采用四舍五入的计数保留法得到,四舍五入的计数保留法使得子任务数量为正整数。
在一种可能的实施方式中,如果高优先级权重系数为0.5,中优先级的权重系数为0.3,低优先级的权重系数为0.2,先拆分高优先级的待处理任务得到高优先级的子任务,高优先级的子任务的数量为:0.5*3=1.5,四舍五入之后为2,中优先级的子任务的数量为:0.3*3=0.9,四舍五入之后为1,低优先级的子任务的数量为:0.2*3=0.6,四舍五入之后为1,也就是先将一个高优先级的待处理任务拆分成两个子任务,按照该策略依次对中优先级的待处理任务拆分成一个子任务、低优先级的待处理任务拆分成一个子任务。
接下来对步骤S140进行详细地介绍,在图1的基础上参照图3,图3示出了本申请实施例提供的任务调度方法中步骤S140的流程示意图,步骤S140包括:
S141、若待处理任务的状态信息发生改变时,根据关系表将对应改变子任务的状态信息;
S143、将改变后的状态信息发送至工作节点使得工作节点根据改变后的子任务的状态信息执行子任务。
其中调度器包括数据库,数据库中存储有待处理任务与子任务的关系表,关系表中的待处理任务的状态信息与所述子任务的状态信息保持一致,状态信息表征待处理任务或者子任务的执行状态,当改变待处理任务的状态信息时,相应的子任务的状态信息也要发生相应的改变,在调度器分发子任务至工作节点之后,工作节点需要对子任务进行执行,但是在执行之前会检查对应子任务的状态信息,以确保与执行进程的状态对应。当在更改待处理任务的状态为可执行时,子任务的状态对应更改为可执行,则工作节点执行子任务。
如果待处理任务的状态信息未发生改变,调度器将子任务的状态信息发送至工作节点,工作节点再根据任务的状态信息来执行子任务。
可选的,在将改变过后的子任务的状态信息发送至工作节点之后,工作节点先对子任务的状态信息进行判断,若接收到的子任务的状态信息为可执行,则工作节点执行子任务,返回执行结果至分布式文件系统中同时更新到数据库。
若接收到的子任务的状态信息为不可执行,则工作节点不执行子任务,等待接受下一个子任务。
其中,可执行状态信息包括:执行中(RUNNING),而不可执行状态信息有等待(PENDING)、失败(FAILURE)、取消(REVOKED)、删除(DELETED)、暂停(PAUSED)等。
在一种可能的实施例中,待处理任务的状态信息为运行中,拆分的子任务的状态信息也为执行中,如果用户暂停该待处理任务,其相应的任务的状态信息也会暂停,此时工作节点便不会执行该子任务,等待接收下一个子任务。
可选的,工作节点按照串行或者并行顺序执行子任务。
其中,工作节点可以并行地执行子任务或者串行地执行子任务,也可以将并行地执行子任务和串行地执行子任务结合,其具体根据实际情况进行设置。并行执行子任务能够保证子任务能够同时执行,减小了执行时间,提高了任务的整体执行效率。而串行执行子任务能够占用较少的资源。
可选的,每隔第二预设时段,采用轮询方式重新请求空闲进程数量。
调度器每隔第二预设时段,向分布式任务队列请求空闲进程数量,进行下一次调度。
进一步地,为了更好的对本申请实施例进行说明,下面通过图4所示的应用示例对本申请实施例提供的任务调度方法进行介绍,如图4所示,本申请实施例提供的任务调度方法可以包括以下流程:
S1、请求空闲进程数量;
S2、判断空闲进程数量是否为0,若空闲进程数量为0,则执行S4,若空闲进程数量不为0,则执行S3,在执行完S3之后执行S1;
S3、等待第二预设时段;
S4、检测是否有待处理任务,若是则执行S5,若没有则执行S3,在执行完S3之后执行S1;
S5、判断待处理任务的状态是否可执行,若可执行则执行S6,若不可执行则执行S3,在执行完S3之后执行S1;
S6、根据空闲进程数量获取与空闲进程数量相同的待处理任务和待处理任务的优先级;
S7、根据优先级和第一预设时段分别拆分待处理任务为多个子任务;
S8、将子任务依次分发至工作节点;
S9、工作节点获取子任务;
S10、查询是否变更待处理任务状态,若是则执行S9,若否则执行S11。
S11、子任务执行。
与现有技术相比,本申请实施例具有以下有益效果:
第一,通过空闲进程数量对待处理任务进行获取,能够对待处理任务按需分配至对应的节点上执行,避免了大量待处理任务在队列中等待所造成的资源大量浪费的问题,进而实现资源的合理利用。
第二,任务调度的过程中加入优先级和等待时间来拆分待处理任务,具有执行简单的优点任务执行延迟率高的问题,提高了任务的执行效率。
下面给出一种任务调度装置100可能的实现方式,其用于执行上述实施例及可能的实现方式中示出的任务调度方法各个执行步骤和相应的技术效果。请参照图5,图5示出了本申请实施例提供的任务调度装置100的结构示意图,该装置应用于上述的调度器当中,任务调度装置100包括:
请求模块110,用于向分布式任务队列请求空闲进程数量;
获取模块120,用于根据空闲进程数量获取对应的至少一个待处理任务以及与待处理任务一一对应的优先级;
拆分模块130,用于根据优先级和第一预设时段,对待处理任务进行拆分以获得与每个待处理任务一一对应的至少一个子任务;
分发模块140,用于将子任务分发至工作节点使得工作节点执行子任务。
可选的,拆分模块130具体用于:
根据优先级计算优先级的权重系数;
根据权重系数和第一预设时段对待处理任务进行拆分以获得与每个待处理任务一一对应的至少一个子任务。
可选的,分发模块140具体用于:
若待处理任务的状态信息发生改变时,根据关系表对应改变子任务的状态信息;
根据关系表从数据库中查询子任务的状态信息;
将状态信息发送至工作节点使得工作节点根据子任务的状态信息执行子任务。
可选的,分发模块140还用于
若接收到的子任务的状态信息为可执行,则工作节点执行子任务;
若接收到的子任务的状态信息为不可执行,则工作节点不执行子任务,进入等待状态。
下面对服务器的结构进行介绍,请参照图6,图6示出本申请实施例提供的服务器的结构示意图。
服务器包括处理器11、存储器12和总线13,处理器11通过总线13与存储器12连接。存储器12用于存储程序,例如图5所示的任务调度装置100,任务调度装置100包括至少一个可以软件或固件(firmware)的形式存储于存储器12中或固化在操作系统(operatingsystem,OS)中的软件功能模块,处理器11在接收到执行指令后,执行程序以实现上述实施例揭示的任务调度方法。
存储器12可能包括高速随机存取存储器(Random Access Memory,RAM),也可能还包括非易失存储器(non-volatile memory,NVM)。
处理器11可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器11中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器11可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、微控制单元(Microcontroller Unit,MCU)、复杂可编程逻辑器件(Complex ProgrammableLogic Device,CPLD)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、嵌入式ARM等芯片。
本申请实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器11执行时实现上述实施例揭示的任务调度方法方法。
综上所述,本申请提供了一种任务调度方法、装置、服务器及可读存储介质,首先调度器向分布式任务队列请求空闲进程数量,之后根据空闲进程数量获取对应的待处理任务以及与待处理任务对应的优先级,然后根据优先级和第一预设时段,对待处理任务进行拆分以获得与每个待处理任务对应的子任务,并将其分发至工作节点来执行子任务,通过空闲进程数量对待处理任务进行获取,避免了大量待处理任务在队列中等待所造成的资源大量浪费的问题,也简化了对任务的管理,此外在任务调度的过程中加入优先级和等待时间来拆分待处理任务,使得高优先级的任务优先执行,合理地分配了资源。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

Claims (10)

1.一种任务调度方法,其特征在于,应用于调度器,所述方法包括:
向分布式任务队列请求空闲进程数量;
根据所述空闲进程数量获取对应的至少一个待处理任务以及与所述待处理任务一一对应的优先级;
根据所述优先级和第一预设时段,拆分所述待处理任务以获得与每个所述待处理任务一一对应的至少一个子任务;
将所述子任务分发至工作节点使得所述工作节点执行所述子任务。
2.根据权利要求1所述的任务调度方法,其特征在于,所述根据所述优先级和第一预设时段,拆分所述待处理任务以获得与每个所述待处理任务一一对应的至少一个子任务的步骤,包括:
根据所述优先级计算所述优先级的权重系数;
根据所述权重系数和第一预设时段对所述待处理任务进行拆分以获得与每个所述待处理任务一一对应的至少一个子任务。
3.根据权利要求1所述的任务调度方法,其特征在于,所述调度器包括数据库,所述数据库中存储有所述待处理任务与子任务的关系表,所述关系表的所述待处理任务的状态信息与所述子任务的状态信息保持一致,所述将所述子任务分发至工作节点使得所述工作节点执行所述子任务的步骤,包括:
若所述待处理任务的状态信息发生改变时,根据所述关系表将对应改变所述子任务的状态信息;
将所述子任务的状态信息发送至所述工作节点使得所述工作节点根据所述子任务的状态信息执行所述子任务。
4.根据权利要求3所述的任务调度方法,其特征在于,所述子任务的状态信息为可执行和不可执行,所述工作节点根据所述子任务的状态信息执行所述子任务的步骤,包括:
若接收到的所述子任务的状态信息为可执行,则所述工作节点执行所述子任务,返回执行结果;
若接收到的所述子任务的状态信息为不可执行,则所述工作节点进入等待状态。
5.根据权利要求1所述的任务调度方法,其特征在于,所述工作节点执行所述子任务的步骤,包括:
所述工作节点按照串行和/或并行顺序执行所述子任务。
6.根据权利要求1所述的任务调度方法,其特征在于,在所述根据所述优先级和第一预设时段,对所述待处理任务进行拆分以获得与每个所述待处理任务一一对应的至少一个子任务的步骤之后,所述方法还包括:
每隔第二预设时段,采用轮询方式重新请求所述空闲进程数量。
7.一种任务调度装置,其特征在于,应用于调度器,所述装置包括:
请求模块,用于向分布式任务队列请求空闲进程数量;
获取模块,用于根据所述空闲进程数量获取对应的至少一个待处理任务以及与所述待处理任务一一对应的优先级;
拆分模块,用于根据所述优先级和第一预设时段,对所述待处理任务进行拆分以获得与每个所述待处理任务一一对应的至少一个子任务;
分发模块,用于将所述子任务分发至工作节点使得所述工作节点执行所述子任务。
8.根据权利要求7所述的任务调度装置,其特征在于,所述拆分模块具体用于:
根据所述优先级确定所述优先级的权重系数;
根据所述权重系数和第一预设时段对所述待处理任务进行拆分以获得与每个所述待处理任务一一对应的至少一个子任务。
9.一种服务器,其特征在于,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的程序指令,当所述服务器运行时,所述处理器与所述存储器之间通过总线通信,所述处理器执行所述程序指令,以执行时执行如权利要求1-6任意一项所述的任务调度方法。
10.一种可读存储介质,其特征在于,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行如权利要求1-6任意一项所述的任务调度方法。
CN202210495454.5A 2022-05-07 2022-05-07 任务调度方法、装置、服务器及可读存储介质 Pending CN114816709A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210495454.5A CN114816709A (zh) 2022-05-07 2022-05-07 任务调度方法、装置、服务器及可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210495454.5A CN114816709A (zh) 2022-05-07 2022-05-07 任务调度方法、装置、服务器及可读存储介质

Publications (1)

Publication Number Publication Date
CN114816709A true CN114816709A (zh) 2022-07-29

Family

ID=82510511

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210495454.5A Pending CN114816709A (zh) 2022-05-07 2022-05-07 任务调度方法、装置、服务器及可读存储介质

Country Status (1)

Country Link
CN (1) CN114816709A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116389820A (zh) * 2023-03-28 2023-07-04 北京睿芯通量科技发展有限公司 一种视频处理方法、视频处理设备、电子设备及存储介质
CN117076555A (zh) * 2023-05-08 2023-11-17 芜湖本初子午信息技术有限公司 一种基于计算的分布式任务管理系统及方法

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116389820A (zh) * 2023-03-28 2023-07-04 北京睿芯通量科技发展有限公司 一种视频处理方法、视频处理设备、电子设备及存储介质
CN117076555A (zh) * 2023-05-08 2023-11-17 芜湖本初子午信息技术有限公司 一种基于计算的分布式任务管理系统及方法
CN117076555B (zh) * 2023-05-08 2024-03-22 深圳市优友网络科技有限公司 一种基于计算的分布式任务管理系统及方法

Similar Documents

Publication Publication Date Title
US9946577B1 (en) Systems and methods for distributed resource management
US10795731B2 (en) Systems and methods for distributed resource management
CN110888743B (zh) 一种gpu资源使用方法、装置及存储介质
EP2901312B1 (en) Real time optimization of compute infrastructure in a virtualized environment
CN109564528B (zh) 分布式计算中计算资源分配的系统和方法
CN110941481A (zh) 资源调度方法、装置及系统
CN109117252B (zh) 基于容器的任务处理的方法、系统及容器集群管理系统
JP2014123365A (ja) MapReduceフレームワークにおけるデータ処理の最適化のためのデバイスおよび方法
CN114816709A (zh) 任务调度方法、装置、服务器及可读存储介质
CN112540841B (zh) 任务调度的方法、装置、处理器与电子设备
CN110955501B (zh) 服务请求处理方法、装置、电子设备及可读介质
CN110659131A (zh) 任务处理方法、电子装置、计算机设备及存储介质
CN112860387A (zh) 分布式任务调度方法、装置、计算机设备及存储介质
CN115686805A (zh) Gpu资源共享的方法和装置、调度gpu资源共享的方法和装置
CN111459622B (zh) 调度虚拟cpu的方法、装置、计算机设备和存储介质
CN111831408A (zh) 异步任务处理方法、装置、电子设备及介质
CN109189581B (zh) 一种作业调度方法和装置
CN114691321A (zh) 一种任务调度方法、装置、设备及存储介质
CN110175078B (zh) 业务处理方法及装置
CN115878910A (zh) 线路查询方法、装置和存储介质
CN113434591B (zh) 数据处理方法以及装置
CN112783651B (zh) 一种云平台vGPU负载均衡调度方法、介质及装置
CN114911538A (zh) 一种运行系统的启动方法及计算设备
CN113760485A (zh) 定时任务的调度方法、装置、设备及存储介质
US10866833B2 (en) Method and appratus for implementing microkernel architecture of industrial server

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