CN111651246A - 终端和服务器之间的任务调度方法、装置和调度器 - Google Patents
终端和服务器之间的任务调度方法、装置和调度器 Download PDFInfo
- Publication number
- CN111651246A CN111651246A CN202010334967.9A CN202010334967A CN111651246A CN 111651246 A CN111651246 A CN 111651246A CN 202010334967 A CN202010334967 A CN 202010334967A CN 111651246 A CN111651246 A CN 111651246A
- Authority
- CN
- China
- Prior art keywords
- task
- server
- tasks
- distributed
- time
- 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
- 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/5038—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 execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
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
技术领域
本申请涉及到区块链领域,特别是涉及到一种终端和服务器之间的任务调度方法、装置和调度器。
背景技术
当终端产生的任务超出终端自身或/和边缘节点的计算能力时,可以将任务发送至服务器进行处理。当存在多个终端与多个服务器,并且不同终端产生的各类任务具有不同的优先级要求时,就需要对多任务进行调度,为各任务分配执行的服务器。在新任务不断产生,同时网络情况和服务器计算资源也在实时变化的情况下,如果未对任务进行及时合理的调度,可能导致服务器资源未被合理利用,优先级较高的任务处于积压任务中不能及时处理。
发明内容
本申请的主要目的为提供终端和服务器之间的任务调度方法、装置和调度器,旨在解决终端和服务器之间任务处理过程中,服务器资源未被合理利用,优先级较高的任务处于积压任务中不能及时处理的问题。
为了实现上述发明目的,本申请提出一种终端和服务器之间的任务调度方法,包括:
调度器接收多个所述终端发送的任务;
为每个所述终端建立一个任务链表,在所述任务链表中按照预设的优先级顺序将所述终端发送的任务实时进行排序;
获取各个所述任务链表中最前端的任务,并将各所述最前端的任务按照预设的优先级顺序进行排序,获取优先级最高的任务作为待分配任务;
根据各个所述服务器的计算能力、任务传输时间和当前可用资源为所述待分配任务分配服务器;
在含有所述待分配任务的任务链表中移除所述待分配任务。
进一步地,所述根据各个所述服务器的计算能力、任务传输时间和当前可用资源为所述待分配任务分配服务器的步骤,包括:
根据各个所述服务器的当前可用资源筛选能够运行所述待分配任务的第一服务器;
根据所述第一服务器的传输带宽和所述待分配任务的数据量计算所述待分配任务至所述第一服务器所需的第一任务传输时间,以及根据所述第一服务器的计算能力和所述待分配任务的数据量计算所述待分配任务在所述第一服务器的第一任务运行时间;
将所述待分配任务分配至所述第一任务传输时间与第一任务运行时间之和最小的第一服务器。
进一步地,所述根据各个所述服务器的当前可用资源筛选能够运行所述待分配任务的第一服务器的步骤之后,还包括:
如果当前没有能够运行所述待分配任务的所述第一服务器,则根据各个服务器正在运行的任务中结束时间最近的任务所占用的资源,及各个服务器的当前可用资源,筛选所述结束时间最近的任务运行完成后,能够运行所述待分配任务的第二服务器;
根据所述结束时间最近的任务的结束时间,计算所述第二服务器所需的任务等待时间;以及根据所述第二服务器的传输带宽和所述待分配任务的数据量计算所述待分配任务至所述第二服务器所需的第二任务传输时间,根据所述第二服务器的计算能力和所述待分配任务的数据量计算所述待分配任务在各个所述第二服务器的第二任务运行时间;
将所述待分配任务分配至所述任务等待时间、所述第二任务传输时间以及第二任务运行时间的三者之和最小的第二服务器的等待列表。
进一步地,所述将所述待分配任务分配至所述任务等待时间、所述第二任务传输时间以及第二任务运行时间的三者之和最小的第二服务器的等待列表的步骤之后,包括:
向所述待分配任务对应的终端发送所述任务等待时间的信息。
进一步地,所述获取各个所述任务链表中最前端的任务,并将各所述最前端的任务按照预设的优先级顺序进行排序,获取优先级最高的任务作为待分配任务的步骤之前,包括:
当所有所述任务链表的数量超出第一预设数量时,查询临近调度器的任务链表数量;
若所述临近调度器的任务链表数量低于第二预设数量时,将超出第一预设数量的任务链表发送至所述临近调度器进行调度处理;
接收所述临近调度器发回的任务处理结果,将所述任务处理结果发送给相应的终端。
进一步地,所述在含有所述待分配任务的任务链表中移除所述待分配任务的步骤之后,包括:
当所述调度器中的各任务链表中的任务全部处理完毕的时候,查看各个服务器中的任务等待列表中是否有剩余的等待时间超过预设阈值的超时任务;
如是,则对应所述超时任务建立超时任务链表,将所述超时任务调入所述超时任务链表中。
进一步地,所述待分配任务存储于区块链中,所述获取各个所述任务链表中最前端的任务,并将各所述最前端的任务按照预设的优先级顺序进行排序,获取优先级最高的任务作为待分配任务的步骤之前,包括:
当所述任务链表中存在超过预设时限且尚未处理的延时任务时,提高所述延时任务的优先级。
本申请还提供一种终端和服务器之间的任务调度装置,包括:
接收单元,用于调度器接收多个所述终端发送的任务;
建立排序单元,用于为每个所述终端建立一个任务链表,在所述任务链表中按照预设的优先级顺序将所述终端发送的任务实时进行排序;
获取排序单元,用于获取各个所述任务链表中最前端的任务,并将各所述最前端的任务按照预设的优先级顺序进行排序,获取优先级最高的任务作为待分配任务;
计算分配单元,用于根据各个所述服务器的计算能力、任务传输时间和当前可用资源为所述待分配任务分配服务器;
移除单元,用于在含有所述待分配任务的任务链表中移除所述待分配任务。
本申请还提供一种调度器,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述任一项所述方法的步骤。
本申请还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一项所述的方法的步骤。
本申请的终端和服务器之间的任务调度方法、装置和调度器,合理分配服务器,为终端提供运算服务。根据多个终端实时产生的任务的优先级、当前网络和服务器资源的实时状态,为任务分配服务器,最大程度保证优先处理紧急任务,以此充分利用服务器的计算资源,减少任务的等待时间,提高用户体验。
附图说明
图1为本申请一实施例的终端和服务器之间的任务调度方法的流程示意图;
图2为本申请一实施例的终端和服务器之间的任务调度装置的结构示意框图;
图3为本申请一实施例的调度器的结构示意框图。
本申请目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
参照图1,本申请实施例提供一种终端和服务器之间的任务调度方法,包括步骤:
S1、调度器接收多个所述终端发送的任务;
S2、为每个所述终端建立一个任务链表,在所述任务链表中按照预设的优先级顺序将所述终端发送的任务实时进行排序;
S3、获取各个所述任务链表中最前端的任务,并将各所述最前端的任务按照预设的优先级顺序进行排序,获取优先级最高的任务作为待分配任务;
S4、根据各个所述服务器的计算能力、任务传输时间和当前可用资源为所述待分配任务分配服务器;
S5、在含有所述待分配任务的任务链表中移除所述待分配任务。需要强调的是,为进一步保证上述待分配任务的私密和安全性,上述待分配任务还可以存储于一区块链的节点中。
如上述步骤S1-S2所述,上述调度器是一种中转设备,其具有数据处理能力,一般包括处理器、存储器、无线接收器、无线发射器等以实现任务接收、处理、发送等功能。上述调度器预先定义不同的任务类型,为不同类型的任务预设不同的优先级属性。在一个具体的实施方式中,所述终端为移动终端,更具体地,所述终端为自动驾驶汽车,所述服务器为云服务器,所述其任务类型包括但不限于人车识别,语音交互,离线地图下载等,其中,将人车识别任务设定为优先级最高,将语音交互任务设定为优先级较低,将离线地图下载任务设定为优先级更低。调度器接收多个终端发送的任务,为每个终端建立一个任务链表,根据预设的优先级顺序,优先级高的任务位于任务链表的前端,优先级低的任务位于任务链表后端。调度器实时接收终端发送的任务,并按上述规则将新任务插入到任务链表中相应的位置。在本实施例中,一个调度器可以同时服务多个终端,所以会为每一个接入的终端建立一个与其对应的任务链表,该任务链表中记录与其对应的终端上传的任务。
如上述步骤S3所述,上述最前端的任务是指在任务链表中优先级最高的任务,调度器进行任务分配时,将全部任务链表中最前端的任务进行排序,选出其中优先级最高的一个任务作为待分配任务。也就是说,调度器在发送任务给服务器的时候是逐个发送的,其先获取全部任务链表中最前端的任务,然后选取各最前端的任务中的优先级最高的任务优先发送给服务器。
如上述步骤S4-S5所述,上述服务器也存在多个,需要调度器选择最合适的服务器,那么什么样的服务器是合适的服务器呢?在一个具体实施例中,是经过各服务器的比较之后确定的,比较的内容即为各服务器的计算能力、任务传输时间和当前可用资源,理论上,计算能力最强、任务传输时间最短和当前可用资源最多的服务器是最合适的,但是,这是一种理想化的存在,在实际应用中会综合考虑,比如给上述的计算能力、任务传输时间和当前可用资源进行打分(计算能力、任务传输时间和当前可用资源分别具有一套预设的打分标准),以及分配预设的权重,然后进行加权计算得到各服务器的最终得分,确定出最合适的服务器等。对上述待分配的任务进行服务器的分配后,在含有所述待分配任务的任务链表中将其移除,再返回步骤S3重复操作。
在一个实施例中,上述预设的优先级顺序为:时延容忍度较低的任务优先级较高,对于时延容忍度相同的多个任务,发送时间较早的任务优先级较高。时延容忍度低的任务即紧急度较高的任务,将其设定为优先级较高,调度器在任务链表中将时延容忍度最低的任务位于链表的最端,然后按照时延容忍度递增的顺序依次排列其他任务。对于时延容忍度相同的多个任务,将发送时间较早的任务设为优先级较高,对其优先处理。
在一个实施例中,上述根据各个所述服务器的计算能力、任务传输时间和当前可用资源为所述待分配任务分配服务器的步骤S4,包括:
S41、根据各个所述服务器的当前可用资源筛选能够运行所述待分配任务的第一服务器;
S42、根据所述第一服务器的传输带宽和所述待分配任务的数据量计算所述待分配任务至所述第一服务器所需的第一任务传输时间,以及根据所述第一服务器的计算能力和所述待分配任务的数据量计算所述待分配任务在所述第一服务器的第一任务运行时间;
S43、将所述待分配任务分配至所述第一任务传输时间与第一任务运行时间之和最小的第一服务器。
在本实施例中,各个服务器的传输带宽与计算能力可由调度器提前获取,各个服务器的当前可用资源可由服务器实时向调度器报告,待分配任务的数据量在调度器接收到此任务时进行获取。根据前述信息,调度器首先进行第一轮筛选:选出能够运行当前任务的第一服务器。再对各个第一服务器进行第二轮筛选:选出第一任务传输时间与第一任务运行时间之和最小的第一服务器,将待分配任务分配至此服务器。在一个实施例中,待分配任务X的任务数据量大小为Sx,调度器比对任务数据量Sx和各个服务器当前可用资源,筛选出能够运行当前任务的多个第一服务器Ej,调度器与第一服务器Ej之间的传输带宽为Vj,则任务X传输到第一服务器Ej的时间为Txj=Sx/Vj。第一服务器Ej的计算能力为Pj,则任务X在第一服务器Ej上的运行时间为T’xj=Sx/Pj,任务X传输时间与运行时间之和Tx=Txj+T’xj,调度器计算出各个第一服务器Ej的Tx,选出Tx最小的第一服务器,将任务X发送至服务器。
在一个实施例中,上述根据各个所述服务器的当前可用资源筛选能够运行所述待分配任务的第一服务器的步骤S41之后,还包括:
S44、如果当前没有能够运行所述待分配任务的所述第一服务器,则根据各个服务器正在运行的任务中结束时间最近的任务所占用的资源,及各个服务器的当前可用资源,筛选所述结束时间最近的任务运行完成后,能够运行所述待分配任务的第二服务器;
S45、根据所述结束时间最近的任务的结束时间,计算所述第二服务器所需的任务等待时间;以及根据所述第二服务器的传输带宽和所述待分配任务的数据量计算所述待分配任务至所述第二服务器所需的第二任务传输时间,根据所述第二服务器的计算能力和所述待分配任务的数据量计算所述待分配任务在各个所述第二服务器的第二任务运行时间;
S46、将所述待分配任务分配至所述任务等待时间、所述第二任务传输时间以及第二任务运行时间的三者之和最小的第二服务器的等待列表。
在本实施例中,当在第一轮查找中发现当前没有能够运行待分配任务的服务器时,待分配任务需要等待,此时为待分配任务分配任务等待时间、任务传输时间与任务运行时间之和最小的服务器,将待分配任务发送至该服务器的等待列表。可以理解,服务器能够同时运行多个任务,当其中有任务运行完毕,该服务器的可用资源会变大。因此,本实施方式中,调度器首先进行第一轮筛选:筛选出各个服务器将结束时间最近的任务运行完毕后,其可用资源能够运行待分配任务的第二服务器。具体而言,各个服务器中结束时间最近的任务所占用的资源及该服务器的当前可用资源可以由服务器实时向调度器报告,或者由调度器向服务器获取,待分配任务的数据量可以在调度器接收到此任务时进行获取,根据前述信息,调度器可以筛选出第二服务器。接下来再对各个第二服务器进行第二轮筛选:选出任务等待时间、第二任务传输时间与第二任务运行时间的三者之和最小的第二服务器。所述任务等待时间即各个第二服务器中结束时间最近的任务运行完毕的时间,可以通过各个第二服务器中结束时间最近的任务的结束时间减去当前时间计算得到;所述第二任务传输时间与第二任务运行时间的计算方式如前一个实施方式所述。调度器将任务分配至任务等待时间、第二任务传输时间与第二任务运行时间之和最小的第二服务器,将任务发送至该服务器的等待列表。
在一个实施例中,上述将所述待分配任务分配至所述任务等待时间、所述第二任务传输时间以及第二任务运行时间的三者之和最小的第二服务器的等待列表的步骤S46之后,包括:
S47、向所述待分配任务对应的终端发送所述任务等待时间的信息。
在本实施例中,对于不能立刻运行需要等待的任务,获取任务等待时间后将其通知终端,便于终端的用户根据具体情况采取应对措施,如继续等待或取消任务等。
在一个实施例中,上述获取各个所述任务链表中最前端的任务,并将各所述最前端的任务按照预设的优先级顺序进行排序,获取优先级最高的任务作为待分配任务的步骤S3之前,包括:
S301、当所有所述任务链表的数量超出第一预设数量时,查询临近调度器的任务链表数量;
S302、若所述临近调度器的任务链表数量低于第二预设数量时,将超出第一预设数量的任务链表发送至所述临近调度器进行调度处理;
S303、接收所述临近调度器发回的任务处理结果,将所述任务处理结果发送给相应的终端。
在本实施例中,为了避免调度器任务过载,同时为了提高任务处理效率,当某个调度器的任务链表数量过多时,如果查询到附近有空闲的调度器,则将任务链表发送至空闲调度器处理,再将处理完毕的任务处理结果转发至相应的终端。上述第一预设数量和第二预设数量可以相同,也可以不同,主要是根据调度器的硬件处理相关。
在一个实施例中,当某一个任务链表中的任务数量大于第三预设数量的时候,则查询临近调度器是否处于空闲状态,其中,空闲状态是指有能力再多处理一些任务的调度等;若是,则将该某一个任务链表进行拆分处理,使该某一任务链表中的任务数量小于等于所述第三预设数量,同时将另一部分发送给处于空闲状态的临近调度器,并在该临近的调度器中形成对应的任务链表,有该临近调度器进行调度处理。
在一个实施例中,上述在含有所述待分配任务的任务链表中移除所述待分配任务的步骤S5之后,包括:
S6、当所述调度器中的各任务链表中的任务全部处理完毕的时候,查看各个服务器中的任务等待列表中是否有剩余的等待时间超过预设阈值的超时任务;
如是,则对应所述超时任务建立超时任务链表,将所述超时任务调入所述超时任务链表中。
在本实施例中,当调度器中暂时没有待分配任务时,查看各服务器的任务等待列表,将已经等待时间较长的、且已经超时的超时任务调入新建的超时任务链表中重新进行调度处理,可以减少已分配但尚未运行的超时任务的等待时间,提高终端用户的体验。
在一个实施例中,上述获取各个所述任务链表中最前端的任务,并将各所述最前端的任务按照预设的优先级顺序进行排序,获取优先级最高的任务作为待分配任务的步骤S3之前,包括:
S31、当所述任务链表中存在超过预设时限且尚未处理的延时任务时,提高所述延时任务的优先级。
在本实施例中,当实时接收的任务数量较多时,由于新接收的任务可以根据优先级顺序插入任务链表,可能导致一些优先级较低的任务长时间处于任务链表后面,一直得不到处理,通过对超过预设时限仍然未处理的延时任务提高其优先级,可以提高调度的灵活性,既兼顾了优先级高的任务,也在一定程度上兼顾了优先权低的任务。需要注意的是,这里所说的对任务优先级的提高,针对的是在任务链表中长时间未处理的具体的延时任务,而不是对所有的这一类任务进行提高优先级的操作。在一具体的实施方式中,可以根据任务的属性对某些类型的任务设置此规则,还可以进一步地,对提高优先级后的仍然等待较长时间的任务,再次提高优先级等。
本申请的终端和服务器之间的任务调度方法,合理分配服务器,为终端提供运算服务。根据多个终端实时产生的任务的优先级、当前网络和服务器资源的实时状态,为任务分配服务器,最大程度保证优先处理紧急任务,以此充分利用服务器的计算资源,减少任务的等待时间,提高用户体验。
参照图2,本申请还提供一种终端和服务器之间的任务调度装置,包括:
接收单元10,用于调度器接收多个所述终端发送的任务;
建立排序单元20,用于为每个所述终端建立一个任务链表,在所述任务链表中按照预设的优先级顺序将所述终端发送的任务实时进行排序;
获取排序单元30,用于获取各个所述任务链表中最前端的任务,并将各所述最前端的任务按照预设的优先级顺序进行排序,获取优先级最高的任务作为待分配任务;
计算分配单元40,用于根据各个所述服务器的计算能力、任务传输时间和当前可用资源为所述待分配任务分配服务器;
移除单元50,用于在含有所述待分配任务的任务链表中移除所述待分配任务。需要强调的是,为进一步保证上述待分配任务的私密和安全性,上述待分配任务还可以存储于一区块链的节点中。
在一个实施例中,上述计算分配单元40,包括:
第一筛选模块,用于根据各个所述服务器的当前可用资源筛选能够运行所述待分配任务的第一服务器;
第一计算模块,用于根据所述第一服务器的传输带宽和所述待分配任务的数据量计算所述待分配任务至所述第一服务器所需的第一任务传输时间,以及根据所述第一服务器的计算能力和所述待分配任务的数据量计算所述待分配任务在所述第一服务器的第一任务运行时间;
第一分配模块,用于将所述待分配任务分配至所述第一任务传输时间与第一任务运行时间之和最小的第一服务器。
在一个实施例中,上述计算分配单元40,还包括:
第二刷选模块,用于如果当前没有能够运行所述待分配任务的所述第一服务器,则根据各个服务器正在运行的任务中结束时间最近的任务所占用的资源,及各个服务器的当前可用资源,筛选所述结束时间最近的任务运行完成后,能够运行所述待分配任务的第二服务器;
第二计算模块,用于根据所述结束时间最近的任务的结束时间,计算所述第二服务器所需的任务等待时间;以及根据所述第二服务器的传输带宽和所述待分配任务的数据量计算所述待分配任务至所述第二服务器所需的第二任务传输时间,根据所述第二服务器的计算能力和所述待分配任务的数据量计算所述待分配任务在各个所述第二服务器的第二任务运行时间;
第二分配模块,用于将所述待分配任务分配至所述任务等待时间、所述第二任务传输时间以及第二任务运行时间的三者之和最小的第二服务器的等待列表。
进一步地,上述计算分配单元40,还包括:
发送提醒模块,用于向所述待分配任务对应的终端发送所述任务等待时间的信息。
在一个实施例中,上述终端和服务器之间的任务调度装置,还包括:
查询单元,用于当所有所述任务链表的数量超出第一预设数量时,查询临近调度器的任务链表数量;
发送调度单元,用于若所述临近调度器的任务链表数量低于第二预设数量时,将超出第一预设数量的任务链表发送至所述临近调度器进行调度处理;
反馈转发单元,用于接收所述临近调度器发回的任务处理结果,将所述任务处理结果发送给相应的终端。
在一个实施例中,上述终端和服务器之间的任务调度装置,还包括:
查看单元,用于当所述调度器中的各任务链表中的任务全部处理完毕的时候,查看各个服务器中的任务等待列表中是否有剩余的等待时间超过预设阈值的超时任务;
执行单元,用于如果任务等待列表中有剩余的等待时间超过预设阈值的超时任务,则对应所述超时任务建立超时任务链表,将所述超时任务调入所述超时任务链表中。
在一个实施例中,上述终端和服务器之间的任务调度装置,还包括:
升级单元,用于当所述任务链表中存在超过预设时限且尚未处理的延时任务时,提高所述延时任务的优先级。
上述各实施例中的单元、模块是对应执行上述各方法实施例的装置,在此不在一一介绍。
参照图3,本申请实施例中还提供一种调度器,该调度器的内部结构可以如图3所示。该调度器包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设计的处理器用于提供计算和控制能力。该调度器的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该调度器的数据库用于存储任务链表等数据。该调度器的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种终端和服务器之间的任务调度方法。
上述处理器执行上述终端和服务器之间的任务调度方法,包括步骤:调度器接收多个所述终端发送的任务;为每个所述终端建立一个任务链表,在所述任务链表中按照预设的优先级顺序将所述终端发送的任务实时进行排序;获取各个所述任务链表中最前端的任务,并将各所述最前端的任务按照预设的优先级顺序进行排序,获取优先级最高的任务作为待分配任务;根据各个所述服务器的计算能力、任务传输时间和当前可用资源为所述待分配任务分配服务器;在含有所述待分配任务的任务链表中移除所述待分配任务。
在一个实施例中,所述根据各个所述服务器的计算能力、任务传输时间和当前可用资源为所述待分配任务分配服务器的步骤,包括:
根据各个所述服务器的当前可用资源筛选能够运行所述待分配任务的第一服务器;
根据所述第一服务器的传输带宽和所述待分配任务的数据量计算所述待分配任务至所述第一服务器所需的第一任务传输时间,以及根据所述第一服务器的计算能力和所述待分配任务的数据量计算所述待分配任务在所述第一服务器的第一任务运行时间;
将所述待分配任务分配至所述第一任务传输时间与第一任务运行时间之和最小的第一服务器。
在一个实施例中,所述根据各个所述服务器的当前可用资源筛选能够运行所述待分配任务的第一服务器的步骤之后,还包括:
如果当前没有能够运行所述待分配任务的所述第一服务器,则根据各个服务器正在运行的任务中结束时间最近的任务所占用的资源,及各个服务器的当前可用资源,筛选所述结束时间最近的任务运行完成后,能够运行所述待分配任务的第二服务器;
根据所述结束时间最近的任务的结束时间,计算所述第二服务器所需的任务等待时间;以及根据所述第二服务器的传输带宽和所述待分配任务的数据量计算所述待分配任务至所述第二服务器所需的第二任务传输时间,根据所述第二服务器的计算能力和所述待分配任务的数据量计算所述待分配任务在各个所述第二服务器的第二任务运行时间;
将所述待分配任务分配至所述任务等待时间、所述第二任务传输时间以及第二任务运行时间的三者之和最小的第二服务器的等待列表。
在一个实施例中,所述将所述待分配任务分配至所述任务等待时间、所述第二任务传输时间以及第二任务运行时间的三者之和最小的第二服务器的等待列表的步骤之后,包括:
向所述待分配任务对应的终端发送所述任务等待时间的信息。
在一个实施例中,所述获取各个所述任务链表中最前端的任务,并将各所述最前端的任务按照预设的优先级顺序进行排序,获取优先级最高的任务作为待分配任务的步骤之前,包括:
当所有所述任务链表的数量超出第一预设数量时,查询临近调度器的任务链表数量;
若所述临近调度器的任务链表数量低于第二预设数量时,将超出第一预设数量的任务链表发送至所述临近调度器进行调度处理;
接收所述临近调度器发回的任务处理结果,将所述任务处理结果发送给相应的终端。
在一个实施例中,所述在含有所述待分配任务的任务链表中移除所述待分配任务的步骤之后,包括:
当所述调度器中的各任务链表中的任务全部处理完毕的时候,查看各个服务器中的任务等待列表中是否有剩余的等待时间超过预设阈值的超时任务;
如是,则对应所述超时任务建立超时任务链表,将所述超时任务调入所述超时任务链表中。
在一个实施例中,所述获取各个所述任务链表中最前端的任务,并将各所述最前端的任务按照预设的优先级顺序进行排序,获取优先级最高的任务作为待分配任务的步骤之前,包括:
当所述任务链表中存在超过预设时限且尚未处理的延时任务时,提高所述延时任务的优先级。
本领域技术人员可以理解,图3中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的调度器的限定。
本申请实施例还提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现一种上述终端和服务器之间的任务调度方法,包括调度器接收多个所述终端发送的任务;
为每个所述终端建立一个任务链表,在所述任务链表中按照预设的优先级顺序将所述终端发送的任务实时进行排序;
获取各个所述任务链表中最前端的任务,并将各所述最前端的任务按照预设的优先级顺序进行排序,获取优先级最高的任务作为待分配任务;
根据各个所述服务器的计算能力、任务传输时间和当前可用资源为所述待分配任务分配服务器;
在含有所述待分配任务的任务链表中移除所述待分配任务。
在一个实施例中,所述根据各个所述服务器的计算能力、任务传输时间和当前可用资源为所述待分配任务分配服务器的步骤,包括:
根据各个所述服务器的当前可用资源筛选能够运行所述待分配任务的第一服务器;
根据所述第一服务器的传输带宽和所述待分配任务的数据量计算所述待分配任务至所述第一服务器所需的第一任务传输时间,以及根据所述第一服务器的计算能力和所述待分配任务的数据量计算所述待分配任务在所述第一服务器的第一任务运行时间;
将所述待分配任务分配至所述第一任务传输时间与第一任务运行时间之和最小的第一服务器。
在一个实施例中,所述根据各个所述服务器的当前可用资源筛选能够运行所述待分配任务的第一服务器的步骤之后,还包括:
如果当前没有能够运行所述待分配任务的所述第一服务器,则根据各个服务器正在运行的任务中结束时间最近的任务所占用的资源,及各个服务器的当前可用资源,筛选所述结束时间最近的任务运行完成后,能够运行所述待分配任务的第二服务器;
根据所述结束时间最近的任务的结束时间,计算所述第二服务器所需的任务等待时间;以及根据所述第二服务器的传输带宽和所述待分配任务的数据量计算所述待分配任务至所述第二服务器所需的第二任务传输时间,根据所述第二服务器的计算能力和所述待分配任务的数据量计算所述待分配任务在各个所述第二服务器的第二任务运行时间;
将所述待分配任务分配至所述任务等待时间、所述第二任务传输时间以及第二任务运行时间的三者之和最小的第二服务器的等待列表。
在一个实施例中,所述将所述待分配任务分配至所述任务等待时间、所述第二任务传输时间以及第二任务运行时间的三者之和最小的第二服务器的等待列表的步骤之后,包括:
向所述待分配任务对应的终端发送所述任务等待时间的信息。
在一个实施例中,所述获取各个所述任务链表中最前端的任务,并将各所述最前端的任务按照预设的优先级顺序进行排序,获取优先级最高的任务作为待分配任务的步骤之前,包括:
当所有所述任务链表的数量超出第一预设数量时,查询临近调度器的任务链表数量;
若所述临近调度器的任务链表数量低于第二预设数量时,将超出第一预设数量的任务链表发送至所述临近调度器进行调度处理;
接收所述临近调度器发回的任务处理结果,将所述任务处理结果发送给相应的终端。
在一个实施例中,所述在含有所述待分配任务的任务链表中移除所述待分配任务的步骤之后,包括:
当所述调度器中的各任务链表中的任务全部处理完毕的时候,查看各个服务器中的任务等待列表中是否有剩余的等待时间超过预设阈值的超时任务;
如是,则对应所述超时任务建立超时任务链表,将所述超时任务调入所述超时任务链表中。
在一个实施例中,所述获取各个所述任务链表中最前端的任务,并将各所述最前端的任务按照预设的优先级顺序进行排序,获取优先级最高的任务作为待分配任务的步骤之前,包括:
当所述任务链表中存在超过预设时限且尚未处理的延时任务时,提高所述延时任务的优先级。
本发明所指区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层等。本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储与一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的和实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可以包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM一多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双速据率SDRAM(SSRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、装置、物品或者方法不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、装置、物品或者方法所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、装置、物品或者方法中还存在另外的相同要素。
以上所述仅为本申请的优选实施例,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。
Claims (10)
1.一种终端和服务器之间的任务调度方法,其特征在于,包括:
调度器接收多个所述终端发送的任务;
为每个所述终端建立一个任务链表,在所述任务链表中按照预设的优先级顺序将所述终端发送的任务实时进行排序;
获取各个所述任务链表中最前端的任务,并将各所述最前端的任务按照预设的优先级顺序进行排序,获取优先级最高的任务作为待分配任务;
根据各个所述服务器的计算能力、任务传输时间和当前可用资源为所述待分配任务分配服务器;
在含有所述待分配任务的任务链表中移除所述待分配任务。
2.根据权利要求1所述的终端和服务器之间的任务调度方法,其特征在于,所述根据各个所述服务器的计算能力、任务传输时间和当前可用资源为所述待分配任务分配服务器的步骤,包括:
根据各个所述服务器的当前可用资源筛选能够运行所述待分配任务的第一服务器;
根据所述第一服务器的传输带宽和所述待分配任务的数据量计算所述待分配任务至所述第一服务器所需的第一任务传输时间,以及根据所述第一服务器的计算能力和所述待分配任务的数据量计算所述待分配任务在所述第一服务器的第一任务运行时间;
将所述待分配任务分配至所述第一任务传输时间与第一任务运行时间之和最小的第一服务器。
3.根据权利要求2所述的终端和服务器之间的任务调度方法,其特征在于,所述根据各个所述服务器的当前可用资源筛选能够运行所述待分配任务的第一服务器的步骤之后,还包括:
如果当前没有能够运行所述待分配任务的所述第一服务器,则根据各个服务器正在运行的任务中结束时间最近的任务所占用的资源,及各个服务器的当前可用资源,筛选所述结束时间最近的任务运行完成后,能够运行所述待分配任务的第二服务器;
根据所述结束时间最近的任务的结束时间,计算所述第二服务器所需的任务等待时间;以及根据所述第二服务器的传输带宽和所述待分配任务的数据量计算所述待分配任务至所述第二服务器所需的第二任务传输时间,根据所述第二服务器的计算能力和所述待分配任务的数据量计算所述待分配任务在各个所述第二服务器的第二任务运行时间;
将所述待分配任务分配至所述任务等待时间、所述第二任务传输时间以及第二任务运行时间的三者之和最小的第二服务器的等待列表。
4.根据权利要求3所述的终端和服务器之间的任务调度方法,其特征在于,所述将所述待分配任务分配至所述任务等待时间、所述第二任务传输时间以及第二任务运行时间的三者之和最小的第二服务器的等待列表的步骤之后,包括:
向所述待分配任务对应的终端发送所述任务等待时间的信息。
5.根据权利要求1所述的终端和服务器之间的任务调度方法,其特征在于,所述待分配任务存储于区块链中,所述获取各个所述任务链表中最前端的任务,并将各所述最前端的任务按照预设的优先级顺序进行排序,获取优先级最高的任务作为待分配任务的步骤之前,包括:
当所有所述任务链表的数量超出第一预设数量时,查询临近调度器的任务链表数量;
若所述临近调度器的任务链表数量低于第二预设数量时,将超出第一预设数量的任务链表发送至所述临近调度器进行调度处理;
接收所述临近调度器发回的任务处理结果,将所述任务处理结果发送给相应的终端。
6.根据权利要求1所述的终端和服务器之间的任务调度方法,其特征在于,所述在含有所述待分配任务的任务链表中移除所述待分配任务的步骤之后,包括:
当所述调度器中的各任务链表中的任务全部处理完毕的时候,查看各个服务器中的任务等待列表中是否有剩余的等待时间超过预设阈值的超时任务;
如是,则对应所述超时任务建立超时任务链表,将所述超时任务调入所述超时任务链表中。
7.根据权利要求1所述的终端和服务器之间的任务调度方法,其特征在于,所述获取各个所述任务链表中最前端的任务,并将各所述最前端的任务按照预设的优先级顺序进行排序,获取优先级最高的任务作为待分配任务的步骤之前,包括:
当所述任务链表中存在超过预设时限且尚未处理的延时任务时,提高所述延时任务的优先级。
8.一种终端和服务器之间的任务调度装置,其特征在于,包括:
接收单元,用于调度器接收多个所述终端发送的任务;
建立排序单元,用于为每个所述终端建立一个任务链表,在所述任务链表中按照预设的优先级顺序将所述终端发送的任务实时进行排序;
获取排序单元,用于获取各个所述任务链表中最前端的任务,并将各所述最前端的任务按照预设的优先级顺序进行排序,获取优先级最高的任务作为待分配任务;
计算分配单元,用于根据各个所述服务器的计算能力、任务传输时间和当前可用资源为所述待分配任务分配服务器;
移除单元,用于在含有所述待分配任务的任务链表中移除所述待分配任务。
9.一种调度器,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010334967.9A CN111651246A (zh) | 2020-04-24 | 2020-04-24 | 终端和服务器之间的任务调度方法、装置和调度器 |
PCT/CN2020/098913 WO2021212657A1 (zh) | 2020-04-24 | 2020-06-29 | 终端和服务器之间的任务调度方法、装置和调度器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010334967.9A CN111651246A (zh) | 2020-04-24 | 2020-04-24 | 终端和服务器之间的任务调度方法、装置和调度器 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111651246A true CN111651246A (zh) | 2020-09-11 |
Family
ID=72343957
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010334967.9A Pending CN111651246A (zh) | 2020-04-24 | 2020-04-24 | 终端和服务器之间的任务调度方法、装置和调度器 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN111651246A (zh) |
WO (1) | WO2021212657A1 (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112150029A (zh) * | 2020-10-09 | 2020-12-29 | 浙江专线宝网阔物联科技有限公司 | 一种支持动态与分散任务分配的区块链弹性架构设计方法 |
CN112153138A (zh) * | 2020-09-23 | 2020-12-29 | 杭州迪普科技股份有限公司 | 一种流量调度的方法及装置、电子设备、存储介质 |
CN112749012A (zh) * | 2021-01-15 | 2021-05-04 | 北京智芯微电子科技有限公司 | 终端设备的数据处理方法、装置、系统及存储介质 |
CN114205160A (zh) * | 2021-12-13 | 2022-03-18 | 深圳前海微众银行股份有限公司 | 基于区块链的数据处理方法、装置及电子设备 |
WO2024032781A1 (zh) * | 2022-08-12 | 2024-02-15 | 虹软科技股份有限公司 | 一种算法测试方法、装置和存储介质 |
WO2024093280A1 (zh) * | 2022-11-01 | 2024-05-10 | 华为技术有限公司 | 任务管理方法、装置、系统、通信设备及存储介质 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024000533A1 (zh) * | 2022-06-30 | 2024-01-04 | 北京小米移动软件有限公司 | 人工智能应用管理方法、装置及通信设备 |
CN117093345B (zh) * | 2023-09-05 | 2024-05-07 | 上海合芯数字科技有限公司 | 任务链表的执行方法、装置、终端设备及存储介质 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104035818A (zh) * | 2013-03-04 | 2014-09-10 | 腾讯科技(深圳)有限公司 | 多任务调度的方法及装置 |
US20150121387A1 (en) * | 2013-10-30 | 2015-04-30 | Mediatek Inc. | Task scheduling method for dispatching tasks based on computing power of different processor cores in heterogeneous multi-core system and related non-transitory computer readable medium |
CN105897837A (zh) * | 2015-12-07 | 2016-08-24 | 乐视云计算有限公司 | 内容分发任务的提交方法及系统 |
CN107291545B (zh) * | 2017-08-07 | 2019-12-10 | 星环信息科技(上海)有限公司 | 计算集群中多用户的任务调度方法及设备 |
-
2020
- 2020-04-24 CN CN202010334967.9A patent/CN111651246A/zh active Pending
- 2020-06-29 WO PCT/CN2020/098913 patent/WO2021212657A1/zh active Application Filing
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112153138A (zh) * | 2020-09-23 | 2020-12-29 | 杭州迪普科技股份有限公司 | 一种流量调度的方法及装置、电子设备、存储介质 |
CN112150029A (zh) * | 2020-10-09 | 2020-12-29 | 浙江专线宝网阔物联科技有限公司 | 一种支持动态与分散任务分配的区块链弹性架构设计方法 |
CN112749012A (zh) * | 2021-01-15 | 2021-05-04 | 北京智芯微电子科技有限公司 | 终端设备的数据处理方法、装置、系统及存储介质 |
CN112749012B (zh) * | 2021-01-15 | 2024-05-28 | 北京智芯微电子科技有限公司 | 终端设备的数据处理方法、装置、系统及存储介质 |
CN114205160A (zh) * | 2021-12-13 | 2022-03-18 | 深圳前海微众银行股份有限公司 | 基于区块链的数据处理方法、装置及电子设备 |
CN114205160B (zh) * | 2021-12-13 | 2024-05-28 | 深圳前海微众银行股份有限公司 | 基于区块链的数据处理方法、装置及电子设备 |
WO2024032781A1 (zh) * | 2022-08-12 | 2024-02-15 | 虹软科技股份有限公司 | 一种算法测试方法、装置和存储介质 |
WO2024093280A1 (zh) * | 2022-11-01 | 2024-05-10 | 华为技术有限公司 | 任务管理方法、装置、系统、通信设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
WO2021212657A1 (zh) | 2021-10-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111651246A (zh) | 终端和服务器之间的任务调度方法、装置和调度器 | |
CN114615747B (zh) | 基站频率的动态分配方法、价签系统和计算机设备 | |
CN106445675B (zh) | 一种b2b平台分布式应用调度与资源分配方法 | |
CN108572875B (zh) | 资源分配方法、装置及系统 | |
CN105975334A (zh) | 任务分布式调度方法及系统 | |
CN105335231B (zh) | 一种服务端线程的动态分配方法和设备 | |
CN113038609B (zh) | 一种基于通信需求的带宽资源分配方法、装置及设备 | |
CN110336848B (zh) | 一种访问请求的调度方法及调度系统、设备 | |
CN110689254A (zh) | 数据处理方法、装置、电子设备和计算机可读存储介质 | |
CN111176840B (zh) | 分布式任务的分配优化方法和装置、存储介质及电子装置 | |
CN110502321A (zh) | 一种资源调度方法及系统 | |
CN111861310A (zh) | 货运订单的分配方法、装置、服务器及存储介质 | |
CN103346980A (zh) | 一种业务调度方法、装置及网络设备 | |
CN113364697A (zh) | 流量控制方法、装置、设备及计算机可读存储介质 | |
CN110995617A (zh) | 基于mqtt的数据报送方法装置计算机设备和存储介质 | |
CN111506443B (zh) | 服务调用方法、装置、设备和存储介质 | |
CN107040475B (zh) | 资源调度方法和装置 | |
CN108023936B (zh) | 一种分布式接口访问控制方法及系统 | |
CN111523743A (zh) | 订单分配方法、装置、服务器及非易失性存储介质 | |
CN109413117B (zh) | 分布式数据计算方法、装置、服务器及计算机存储介质 | |
CN112817726A (zh) | 一种云环境下基于优先级的虚拟机分组资源调度方法 | |
CN110366194B (zh) | 资源调用方法、装置及系统 | |
CN116647599A (zh) | 一种微服务的调度方法、装置、设备和存储介质 | |
CN111309467B (zh) | 任务分发方法及装置、电子设备及存储介质 | |
CN107770038B (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 |