CN113032119A - 一种任务调度方法、装置、存储介质及电子设备 - Google Patents

一种任务调度方法、装置、存储介质及电子设备 Download PDF

Info

Publication number
CN113032119A
CN113032119A CN202110309222.1A CN202110309222A CN113032119A CN 113032119 A CN113032119 A CN 113032119A CN 202110309222 A CN202110309222 A CN 202110309222A CN 113032119 A CN113032119 A CN 113032119A
Authority
CN
China
Prior art keywords
task
processing
processing node
data
node
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
CN202110309222.1A
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 Sankuai Online Technology Co Ltd
Original Assignee
Beijing Sankuai Online 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 Sankuai Online Technology Co Ltd filed Critical Beijing Sankuai Online Technology Co Ltd
Priority to CN202110309222.1A priority Critical patent/CN113032119A/zh
Publication of CN113032119A publication Critical patent/CN113032119A/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

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)

Abstract

本说明书公开了一种任务调度方法、装置、存储介质及电子设备,本说明书实施例在分布式系统的当前处理节点监控自身的负载状态,当自身的负载状态未达到负载阈值时,当前处理节点主动从任务队列中获取任务。然后,对获取到的任务进行处理或发送给其他处理节点进行处理。在此方法中,当前处理节点根据自身的负载状态,自主地从任务队列中获取任务,可以避免处理节点的任务数量超过负载能力的问题,从而提高处理任务的处理效率。

Description

一种任务调度方法、装置、存储介质及电子设备
技术领域
本说明书涉及计算机技术领域,尤其涉及一种任务调度方法、装置、存储介质及电子设备。
背景技术
如今,随着经济的快速发展,计算机需要处理的任务的数据量也成倍增长。而任务中数据量的大幅度增加,不利于任务的处理。因此,为了提高任务的处理效率,可以通过分布式系统对任务进行处理,而通过分布式系统对任务进行处理就需要对任务进行调度。
现有技术中,通过分布式系统中的调度器将整个任务分割成多个子任务,然后,针对每个子任务,将该子任务调度到具有处理该子任务所需数据的节点上。在每个节点对各自的子任务进行处理后,对每个节点的处理结果进行汇总,得到整个任务的处理结果。
然而,现有技术中分布式系统的调度器只根据保存有处理子任务时所需数据的节点,对每个子任务进行调度,这样易导致节点的子任务量超出该节点的负载能力,从而影响该节点对子任务的处理效率,因此降低了整个任务的处理效率。
发明内容
本说明书实施例提供一种任务调度方法、装置、存储介质及电子设备,以部分解决上述现有技术存在的问题。
本说明书实施例采用下述技术方案:
本说明书提供的一种任务调度方法,包括:
分布式系统中的当前处理节点监控自身的负载状态,判断自身当前的负载状态是否达到负载阈值;
若负载状态未达到负载阈值,则主动从预先存储任务的任务队列中获取任务;
根据获取到的任务以及所述当前处理节点自身保存的数据,对所述任务进行处理或者发送给所述分布式系统中的其他处理节点进行处理。
可选地,根据获取到的任务以及所述当前处理节点自身保存的数据,对所述任务进行处理或者发送给所述分布式系统中的其他处理节点进行处理,具体包括:
根据获取到的任务,确定处理所述任务时所需的数据,作为任务数据;
根据所述任务数据以及所述当前处理节点自身保存的数据,判断所述当前处理节点是否适合处理所述任务;
若所述当前处理节点适合处理所述任务,则将所述任务保存到自身的负载队列中,并对所述任务进行处理;
若所述当前处理节点不适合处理所述任务,则将所述任务发送给所述分布式系统中的其他处理节点进行处理。
可选地,根据所述任务数据以及所述当前处理节点自身保存的数据,判断所述当前处理节点是否适合处理所述任务,具体包括:
根据所述任务数据、所述当前处理节点自身保存的数据以及所述当前处理节点当前的负载状态,确定所述当前处理节点处理所述任务的代价值;
将所述代价值与代价阈值进行比较,判断所述当前处理节点是否适合处理所述任务。
可选地,将所述任务发送给所述分布式系统中的其他处理节点进行处理,具体包括:
根据处理所述任务的任务数据,查找所述分布式系统中具有所述任务数据的其他处理节点,并将所述其他处理节点中任意的处理节点,作为备选处理节点;
针对每个备选处理节点,将所述任务发送给该备选处理节点,以使该备选处理节点确定出该备选处理节点处理所述任务的代价值,并将该备选处理节点确定出的代价值与代价阈值进行比较,得到比较结果;
根据该备选处理节点返回的比较结果,判断该备选处理节点是否适合处理所述任务;
若该备选处理节点适合处理所述任务,则确定所述任务由该备选处理节点进行处理;
若该备选处理节点不适合处理所述任务,则继续将所述任务发送给其他的备选处理节点,直至确定出处理所述任务的备选处理节点或遍历完所有备选处理节点为止。
可选地,所述方法还包括:
若所有备选处理节点都不适合处理所述任务,则将所述任务保存到所述当前处理节点自身的负载队列中,并对所述任务进行处理。
可选地,对所述任务进行处理,具体包括:
当所述当前处理节点自身保存的数据中没有处理所述任务的任务数据时,对所述任务数据进行下载;
根据下载完成的任务数据,所述当前处理节点自身对所述任务进行处理。
可选地,查找具有所述任务数据的其他处理节点,具体包括:
根据所述当前处理节点所在的分布式系统的维护节点中保存的各个任务数据与各个处理节点的关联关系,查找具有所述任务数据的其他处理节点;
在对所述任务数据进行下载之后,所述方法还包括:
将所述任务数据与所述当前处理节点的关联关系更新到所述维护节点中。
本说明书提供的一种任务调度装置,包括:
判断模块,用于当前处理节点监控自身的负载状态,判断自身当前的负载状态是否达到负载阈值;
获取模块,用于若负载状态未达到负载阈值,则主动从预先存储任务的任务队列中获取任务;
处理模块,用于根据获取到的任务以及所述当前处理节点自身保存的数据,对所述任务进行处理或发送给其他处理节点进行处理。
本说明书提供的一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述的任务调度方法。
本说明书提供的一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述的任务调度方法。
本说明书实施例采用的上述至少一个技术方案能够达到以下有益效果:
本说明书实施例在分布式系统中的当前处理节点监控自身的负载状态,当自身的负载状态未达到负载阈值时,当前处理节点主动从任务队列中获取任务。然后,对获取到的任务进行处理或发送给分布式系统中的其他处理节点进行处理。在此方法中,当前处理节点根据自身的负载状态,自主地从任务队列中获取任务,可以避免处理节点的任务数量超过负载能力的问题,从而提高处理任务的处理效率。
附图说明
此处所说明的附图用来提供对本说明书的进一步理解,构成本说明书的一部分,本说明书的示意性实施例及其说明用于解释本说明书,并不构成对本说明书的不当限定。在附图中:
图1为本说明书实施例提供的任务调度流程示意图;
图2为本说明书实施例提供的当前处理节点调度任务的逻辑示意图;
图3为本说明书实施例提供的任务调度装置结构示意图;
图4为本说明书实施例提供的电子设备的结构示意图。
具体实施方式
现有技术中,分布式系统中的存储系统会将数据进行固定数量的副本存储,然后,根据不同数据所存储的副本总量,将存储的所有副本均分到各个节点上。比如:需要存储的数据有数据1和数据2,每个数据存储的副本数量为2。其中,数据1为使用频率高的数据,数据2为使用频率低的数据。分布式系统中有四个节点,将数据1和数据2的所有副本均分到各个节点上,即,将四个副本均分到四个节点上。最终,存储数据1(具体数据1的副本)的节点数量与存储数据2(具体数据2的副本)的节点数量相同。
在分布式系统接收一个新任务后,分布式系统的调度器对整个新任务进行调度计算,根据计算结果,将整个新任务分成多个子任务,针对每个子任务,只根据处理该子任务时所需的数据,将该子任务调度到具有处理该子任务数据的节点上进行处理。
然而,现有技术中的分布式系统对不同数据存储相同数量的副本,导致存储使用频率高的数据的节点数量与存储使用频率低的数据的节点数量相同。而一个完整任务中的处理各个子任务所需的数据的使用频率不尽相同,针对需要使用频率高的数据的每个子任务,调度器会将该子任务调度到存储使用频率高的数据的节点上,这样易导致存储使用频率高的数据的节点上的子任务数量超出节点的负载能力,增加该子任务的处理时长,降低该子任务的处理效率。相反,针对需要使用频率低的数据的每个子任务,调度器将该子任务调度到存储使用频率低的数据的节点上,可以及时对该子任务进行处理。这样,对于整个任务来说,不同子任务的处理时长相差较大,导致整个任务的处理效率降低。
为了解决上述现有技术中存在的问题,本说明书实施例中提供一种分布式系统,该分布式系统可包括:任务管理服务器、处理节点和维护节点。
在本说明书实施例中,客户端根据用户提交的整体任务,将整体任务分成多个子任务,并将各个子任务发送给分布式系统。分布式系统接收客户端发送的各个子任务,并将各个子任务依次存储于任务队列中。需要说明的是,下文将分布式系统接收到的子任务称为任务。
具体的,任务管理服务器用于接收客户端发送的任务,并将接收到的任务依次存储于任务队列中。
处理节点用于根据当前处理节点自身的负载状态,判断当前处理节点自身当前的负载状态是否达到负载阈值。若负载状态未达到负载阈值,则主动从任务队列中获取任务。然后,根据获取到的任务以及当前处理节点自身保存的数据,对任务进行处理或者发送给其他处理节点进行处理。
维护节点用于保存并更新每个处理节点与该处理节点自身保存的各个任务的任务数据的关联关系。
需要说明的是,本说明书实施例中提供的任务调度方法应用于分布式系统中的处理节点。
为使本说明书的目的、技术方案和优点更加清楚,下面将结合本说明书具体实施例及相应的附图对本说明书技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本说明书保护的范围。
以下结合附图,详细说明本说明书各实施例提供的技术方案。
图1为本说明书实施例提供的任务调度流程示意图,包括:
S100:分布式系统中的当前处理节点监控自身的负载状态,判断自身当前的负载状态是否达到负载阈值。
S102:若负载状态未达到负载阈值,则主动从预先存储任务的任务队列中获取任务。
在本说明书实施例中,分布式系统有多个处理节点,所述当前处理节点为多个处理节点中任意一个。以当前处理节点为例,对图1所示的任务调度过程进行说明。
具体的,当前处理节点监控自身的负载状态,其中,负载状态可以指当前处理节点自身的负载队列中的任务数量。将当前处理节点自身当前的负载状态与当前处理节点的负载阈值进行比较,判断当前处理节点自身当前的负载状态是否达到负载阈值。若负载状态达到负载阈值,则说明当前处理节点当前的负载队列中的任务数量已达到上限,当前处理节点不会从任务队列中获取新的任务。若负载状态未达到负载阈值,当前处理节点会主动从存储任务的任务队列中获取任务。
S104:根据获取到的任务以及所述当前处理节点自身保存的数据,对所述任务进行处理或者发送给所述分布式系统中的其他处理节点进行处理。
在本说明书实施例中,当前处理节点获取到任务之后,当前处理节点根据获取到的任务,确定处理该任务时所需的数据,作为任务数据。然后,当前处理节点可根据任务数据以及当前处理节点自身保存的数据,判断当前处理节点是否适合处理该任务。若当前处理节点适合处理该任务,则将该任务保存到当前处理节点自身的负载队列中,并由当前处理节点对该任务进行处理;若当前处理节点不适合处理该任务,则将该任务发送给分布式系统中的其他处理节点进行处理。
通过上述图1所示的方法可见,本说明书中当前处理节点监控自身的负载状态,当自身的负载状态未达到负载阈值时,当前处理节点主动从任务队列中获取任务。然后,根据当前处理节点处理获取到的任务时所需的任务数据、当前处理节点自身保存的数据以及当前处理节点当前的负载状态,直接对获取到的任务进行处理或发送给其他处理节点进行处理。现有技术中的调度器只根据每个任务所需的数据,直接将任务调度到具有任务所需数据的节点上,不考虑节点实际的负载能力。而本说明书提供的任务调度方法中不存在专门的调度器,由当前处理节点根据自身的负载状态,自主地从任务队列中获取任务,这样就可以避免处理节点的任务数量超过负载能力的问题。由当前处理节点合理地对获取到的任务进行调度,可以及时对获取到的任务进行处理,从而提高任务的处理效率。
进一步的,在如图1所示的步骤S104中,判断当前处理节点是否适合处理当前处理节点获取到的任务的方法,可包括:根据当前处理节点获取到的任务的任务数据、当前处理节点自身保存的数据以及当前处理节点当前的负载状态,确定当前处理节点处理该任务的代价值。将代价值与代价阈值进行比较,判断当前处理节点是否适合处理该任务。其中,任务数据可包括:算法数据和待处理数据。
具体的,根据当前处理节点获取到的任务的算法数据和待处理数据,当前处理节点检测自身保存的数据和自身当前的负载队列长度。根据检测结果,计算出当前处理节点处理该任务的代价值。
在本说明书实施例中,计算代价值的公式为:Score=k1*LCQL+k2*CL+k3*DL。其中,k1+k2+k3=1。Score为当前处理节点处理该任务的代价值,LCQL为当前处理节点当前的负载队列长度,CL为当前处理节点获取该任务中算法数据的成本,DL为当前处理节点获取该任务中待处理数据的成本。
若处理该任务的算法数据存储在当前处理节点本地,则当前处理节点获取该任务中算法数据的成本低。若处理该任务的算法数据未存储在当前处理节点本地,则当前处理节点获取该任务中算法数据的成本高。当当前处理节点未存储处理该任务的算法数据,可以从具有该算法数据的其他处理节点上下载。可以根据当前的网速,计算当前处理节点从其他处理节点下载该算法数据的成本。类似的,若处理该任务的待处理数据存储在当前处理节点本地,则当前处理节点获取该任务中待处理数据的成本低。若处理该任务的待处理数据未存储在当前处理节点本地,则当前处理节点获取该任务中待处理数据的成本高。
而k1、k2、k3的具体数值可以是预先设置的固定值,也可以是根据当前处理节点实际的运行状态动态确定的动态值。
具体的,在k1+k2+k3=1为约束条件下,可以使k1与当前处理节点当前的负载队列长度呈正相关,k2与当前处理节点获取该任务中算法数据的成本呈正相关,k3与当前处理节点获取该任务中待处理数据的成本呈正相关。
比如,当前处理节点自身保存的数据中存在该任务的算法数据,并且当前的负载队列长度较短,需要从其他处理节点上下载该任务的待处理数据。这种情况下,可以将k1设置为0.2,k2设置为0,k3设置为0.8。
当当前处理节点判断出自身不适合处理该任务时,当前处理节点需要轮询具有该任务的任务数据的其他处理节点。
具体的,根据处理该任务时所需的任务数据,从保存了各个任务数据与各个处理节点的关联关系的维护节点中查找具有该任务的任务数据的其他处理节点,并将其他处理节点中任意的处理节点,作为备选处理节点。在开始轮询之前,先将每个备选处理节点进行随机排序。然后,可以依次轮询各个备选处理节点。根据每个备选处理节点返回的结果,确定出处理该任务的备选处理节点。其中,将每个备选处理节点进行随机排序,是为了使具有相同任务数据的各个备选处理节点负载均衡。比如,具有数据a的备选处理节点有节点1和节点2,节点1排在节点2的前面。在轮询时,若节点1和节点2的排列顺序不变,则可能导致需要数据a的不同任务都会调度到节点1上。若节点1和节点2随机排列,则需要数据a的不同任务会分别调度到节点1和节点2上,从而实现负载均衡。
进一步,针对每个备选处理节点,将当前处理节点获取到的任务发送给该备选处理节点,该备选处理节点接收到该任务后,该备选处理节点确定出该备选处理节点处理该任务的代价值,然后,将该备选处理节点确定出的代价值与代价阈值进行比较,得到比较结果。该备选处理节点将比较结果返回给当前处理节点,当前处理节点根据返回的比较结果,判断该备选处理节点是否适合处理该任务。若该备选处理节点适合处理该任务,则确定该任务由该备选处理节点进行处理;若该备选处理节点不适合处理该任务,则继续将该任务发送给其他的备选处理节点,直至确定出处理该任务的备选处理节点或遍历完所有备选处理节点为止。
轮询完所有的备选处理节点后,若所有备选处理节点都不适合处理该任务,则将该任务保存到当前处理节点自身的负载队列中。若当前处理节点自身保存的数据中没有处理该任务的任务数据时,需要对该任务的任务数据进行下载。然后,根据下载完成的任务数据,对该任务进行处理,该任务处理完成后,需要向任务队列返回确认消息,以保证该任务已完成处理。其中,在当前处理节点对该任务的任务数据下载完成之后,需要将给任务的任务数据与当前处理节点的关联关系更新到分布式系统的维护节点中。
另外,在轮询过程中,当前处理节点可以将出现故障的备选处理节点的节点标识发送给维护节点,维护节点根据节点标识将与出现故障的备选处理节点相关的关联关系从维护节点中删除。
基于上述当前处理节点对任务的具体调度方式,本说明书实施例中提供一种当前处理节点调度任务的逻辑示意图,如图2所示。
在图2中,当前处理节点先进行初始化,并将当前处理节点与自身保存的数据更新到维护节点中。然后,当前处理节点判断自身的负载状态是否达到负载阈值,若达到负载阈值,则休息10秒;若未达到负载阈值,则主动从任务队列中获取一个任务,并对该任务进行代价值计算。根据计算得到的代价值与代价阈值进行比较,若代价值小于代价阈值,则将该任务保存到负载队列中;若代价值大于代价阈值,则轮询具有处理该任务的任务数据的其他处理节点。根据其他处理节点返回的结果,将该任务保存到自身的负载队列中或将该任务调度到其他处理节点上进行处理。同时,当前处理节点还要从自身的负载队列中获取各个任务进行处理,并向任务队列中发送任务处理完成的确定信息。
在本说明书实施例中,分布式系统中的处理节点可以通过上述轮询的方式,将数据的使用频率与数据存储的副本数量相关联。
具体的,针对每个数据,当当前处理节点没有保存该数据时,则轮询具有该数据的其他处理节点。当具有该数据的其他处理节点都不能对需要该数据的任务进行处理时,当前处理节点就需要对该数据进行下载。若该数据的使用频率越高,则具有该数据的处理节点越忙碌。那么,通过上述的轮询方式,就会不断地增加具有该数据的处理节点。也就是说,保存使用频率高的数据的处理节点数量大于保存使用频率低的数据的处理节点数量。
在此基础上,本说明书实例中提供的分布式系统主要通过处理节点对各个任务进行合理地调度,而不是通过专门的调度器对各个任务进行调度,以达到该分布式系统对每个任务进行及时处理,从而提高任务的处理效率。
以上为本说明书实施例提供的任务调度方法,基于同样的思路,本说明书还提供了相应的装置、存储介质和电子设备。
图3为本说明书实施例提供的一种任务调度装置的结构示意图,所述装置包括:
判断模块301,用于分布式系统中的当前处理节点监控自身的负载状态,判断自身当前的负载状态是否达到负载阈值;
获取模块302,用于若负载状态未达到负载阈值,则主动从预先存储任务的任务队列中获取任务;
处理模块303,用于根据获取到的任务以及所述当前处理节点自身保存的数据,对所述任务进行处理或发送给所述分布式系统中的其他处理节点进行处理。
可选地,所述处理模块303具体用于,根据获取到的任务,确定处理所述任务时所需的数据,作为任务数据;根据所述任务数据以及所述当前处理节点自身保存的数据,判断所述当前处理节点是否适合处理所述任务;若所述当前处理节点适合处理所述任务,则将所述任务保存到自身的负载队列中,并对所述任务进行处理;若所述当前处理节点不适合处理所述任务,则将所述任务发送给所述分布式系统中的其他处理节点进行处理。
可选地,所述处理模块303具体用于,根据所述任务数据、所述当前处理节点自身保存的数据以及所述当前处理节点当前的负载状态,确定所述当前处理节点处理所述任务的代价值;将所述代价值与代价阈值进行比较,判断所述当前处理节点是否适合处理所述任务。
可选地,所述处理模块303具体用于,根据处理所述任务的任务数据,查找所述分布式系统中具有所述任务数据的其他处理节点,并将所述其他处理节点中任意的处理节点,作为备选处理节点;针对每个备选处理节点,将所述任务发送给该备选处理节点,以使该备选处理节点确定出该备选处理节点处理所述任务的代价值,并将该备选处理节点确定出的代价值与代价阈值进行比较,得到比较结果;根据该备选处理节点返回的比较结果,判断该备选处理节点是否适合处理所述任务;若该备选处理节点适合处理所述任务,则确定所述任务由该备选处理节点进行处理;若该备选处理节点不适合处理所述任务,则继续将所述任务发送给其他的备选处理节点,直至确定出处理所述任务的备选处理节点或遍历完所有备选处理节点为止。
可选地,所述处理模块303具体用于,根据所述当前处理节点所在的分布式系统的维护节点中保存的各个任务数据与各个处理节点的关联关系,查找具有所述任务数据的其他处理节点。
可选地,所述处理模块303还用于,若所有备选处理节点都不适合处理所述任务,则将所述任务保存到所述当前处理节点自身的负载队列中,并对所述任务进行处理。
可选地,在对所述任务数据进行下载之后,所述处理模块303还用于,将所述任务数据与所述当前处理节点的关联关系更新到所述维护节点中。
本说明书还提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时可用于执行上述图1提供的任务调度方法。
基于图1所示的运动轨迹的预测方法,本说明书实施例还提供了图4所示的无人设备的结构示意图。如图4,在硬件层面,该无人设备包括处理器、内部总线、网络接口、内存以及非易失性存储器,当然还可能包括其他业务所需要的硬件。处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,以实现上述图1所述的任务调度方法。
当然,除了软件实现方式之外,本说明书并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(Programmable Logic Device,PLD)(例如现场可编程门阵列(Field Programmable GateArray,FPGA))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片PLD上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logic compiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(Hardware Description Language,HDL),而HDL也并非仅有一种,而是有许多种,如ABEL(Advanced Boolean Expression Language)、AHDL(Altera Hardware DescriptionLanguage)、Confluence、CUPL(Cornell University Programming Language)、HDCal、JHDL(Java Hardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(RubyHardware Description Language)等,目前最普遍使用的是VHDL(Very-High-SpeedIntegrated Circuit Hardware Description Language)与Verilog。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。
控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:ARC 625D、Atmel AT91SAM、Microchip PIC18F26K20以及Silicone Labs C8051F320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本说明书时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本领域内的技术人员应明白,本说明书的实施例可提供为方法、系统、或计算机程序产品。因此,本说明书可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本说明书可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本说明书是参照根据本说明书实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本说明书的实施例可提供为方法、系统或计算机程序产品。因此,本说明书可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本说明书可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本说明书可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本说明书,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本说明书的实施例而已,并不用于限制本说明书。对于本领域技术人员来说,本说明书可以有各种更改和变化。凡在本说明书的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本说明书的权利要求范围之内。

Claims (10)

1.一种任务调度方法,其特征在于,所述方法包括:
分布式系统中的当前处理节点监控自身的负载状态,判断自身当前的负载状态是否达到负载阈值;
若负载状态未达到负载阈值,则主动从预先存储任务的任务队列中获取任务;
根据获取到的任务以及所述当前处理节点自身保存的数据,对所述任务进行处理或者发送给所述分布式系统中的其他处理节点进行处理。
2.如权利要求1所述的方法,其特征在于,根据获取到的任务以及所述当前处理节点自身保存的数据,对所述任务进行处理或者发送给所述分布式系统中的其他处理节点进行处理,具体包括:
根据获取到的任务,确定处理所述任务时所需的数据,作为任务数据;
根据所述任务数据以及所述当前处理节点自身保存的数据,判断所述当前处理节点是否适合处理所述任务;
若所述当前处理节点适合处理所述任务,则将所述任务保存到自身的负载队列中,并对所述任务进行处理;
若所述当前处理节点不适合处理所述任务,则将所述任务发送给所述分布式系统中的其他处理节点进行处理。
3.如权利要求2所述的方法,其特征在于,根据所述任务数据以及所述当前处理节点自身保存的数据,判断所述当前处理节点是否适合处理所述任务,具体包括:
根据所述任务数据、所述当前处理节点自身保存的数据以及所述当前处理节点当前的负载状态,确定所述当前处理节点处理所述任务的代价值;
将所述代价值与代价阈值进行比较,判断所述当前处理节点是否适合处理所述任务。
4.如权利要求2所述的方法,其特征在于,将所述任务发送给所述分布式系统中的其他处理节点进行处理,具体包括:
根据处理所述任务的任务数据,查找所述分布式系统中具有所述任务数据的其他处理节点,并将所述其他处理节点中任意的处理节点,作为备选处理节点;
针对每个备选处理节点,将所述任务发送给该备选处理节点,以使该备选处理节点确定出该备选处理节点处理所述任务的代价值,并将该备选处理节点确定出的代价值与代价阈值进行比较,得到比较结果;
根据该备选处理节点返回的比较结果,判断该备选处理节点是否适合处理所述任务;
若该备选处理节点适合处理所述任务,则确定所述任务由该备选处理节点进行处理;
若该备选处理节点不适合处理所述任务,则继续将所述任务发送给其他的备选处理节点,直至确定出处理所述任务的备选处理节点或遍历完所有备选处理节点为止。
5.如权利要求4所述的方法,其特征在于,所述方法还包括:
若所有备选处理节点都不适合处理所述任务,则将所述任务保存到所述当前处理节点自身的负载队列中,并对所述任务进行处理。
6.如权利要求5所述的方法,其特征在于,对所述任务进行处理,具体包括:
当所述当前处理节点自身保存的数据中没有处理所述任务的任务数据时,对所述任务数据进行下载;
根据下载完成的任务数据,所述当前处理节点自身对所述任务进行处理。
7.如权利要求6所述的方法,其特征在于,查找具有所述任务数据的其他处理节点,具体包括:
根据所述当前处理节点所在的分布式系统的维护节点中保存的各个任务数据与各个处理节点的关联关系,查找具有所述任务数据的其他处理节点;
在对所述任务数据进行下载之后,所述方法还包括:
将所述任务数据与所述当前处理节点的关联关系更新到所述维护节点中。
8.一种任务调度装置,其特征在于,包括:
判断模块,用于分布式系统中的当前处理节点监控自身的负载状态,判断自身当前的负载状态是否达到负载阈值;
获取模块,用于若负载状态未达到负载阈值,则主动从预先存储任务的任务队列中获取任务;
处理模块,用于根据获取到的任务以及所述当前处理节点自身保存的数据,对所述任务进行处理或发送给所述分布式系统中的其他处理节点进行处理。
9.一种计算机可读存储介质,其特征在于,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述权利要求1-7任一项所述的方法。
10.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现上述权利要求1-7任一项所述的方法。
CN202110309222.1A 2021-03-23 2021-03-23 一种任务调度方法、装置、存储介质及电子设备 Pending CN113032119A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110309222.1A CN113032119A (zh) 2021-03-23 2021-03-23 一种任务调度方法、装置、存储介质及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110309222.1A CN113032119A (zh) 2021-03-23 2021-03-23 一种任务调度方法、装置、存储介质及电子设备

Publications (1)

Publication Number Publication Date
CN113032119A true CN113032119A (zh) 2021-06-25

Family

ID=76472922

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110309222.1A Pending CN113032119A (zh) 2021-03-23 2021-03-23 一种任务调度方法、装置、存储介质及电子设备

Country Status (1)

Country Link
CN (1) CN113032119A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113485815A (zh) * 2021-07-27 2021-10-08 中国银行股份有限公司 作业批量处理系统、方法、装置、存储介质及电子设备
CN116339958A (zh) * 2023-05-30 2023-06-27 支付宝(杭州)信息技术有限公司 一种任务执行方法、装置以及设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103019853A (zh) * 2012-11-19 2013-04-03 北京亿赞普网络技术有限公司 一种作业任务的调度方法和装置
CN108491263A (zh) * 2018-03-02 2018-09-04 珠海市魅族科技有限公司 数据处理方法、数据处理装置、终端及可读存储介质
CN111008071A (zh) * 2019-12-19 2020-04-14 北京金山云网络技术有限公司 任务调度系统、方法和服务器
CN112162865A (zh) * 2020-11-03 2021-01-01 中国工商银行股份有限公司 服务器的调度方法、装置和服务器

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103019853A (zh) * 2012-11-19 2013-04-03 北京亿赞普网络技术有限公司 一种作业任务的调度方法和装置
CN108491263A (zh) * 2018-03-02 2018-09-04 珠海市魅族科技有限公司 数据处理方法、数据处理装置、终端及可读存储介质
CN111008071A (zh) * 2019-12-19 2020-04-14 北京金山云网络技术有限公司 任务调度系统、方法和服务器
CN112162865A (zh) * 2020-11-03 2021-01-01 中国工商银行股份有限公司 服务器的调度方法、装置和服务器

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113485815A (zh) * 2021-07-27 2021-10-08 中国银行股份有限公司 作业批量处理系统、方法、装置、存储介质及电子设备
CN116339958A (zh) * 2023-05-30 2023-06-27 支付宝(杭州)信息技术有限公司 一种任务执行方法、装置以及设备
CN116339958B (zh) * 2023-05-30 2023-09-08 支付宝(杭州)信息技术有限公司 一种任务执行方法、装置以及设备

Similar Documents

Publication Publication Date Title
JP6716149B2 (ja) ブロックチェーンベースのデータ処理方法および装置
CN107770088B (zh) 一种流量控制方法及装置
CN110401700B (zh) 模型加载方法及系统、控制节点及执行节点
CN107577523B (zh) 一种任务执行的方法及装置
KR20130004502A (ko) 프로세서에서 스레드들을 실행하는 시스템 및 방법
CN113032119A (zh) 一种任务调度方法、装置、存储介质及电子设备
CN112596898A (zh) 一种任务执行器调度的方法及装置
CN116225669B (zh) 一种任务执行方法、装置、存储介质及电子设备
US8843545B2 (en) Supervision timer control mechanisms
CN111782409A (zh) 任务处理、风险识别任务处理方法、装置及电子设备
CN111488210A (zh) 基于云计算的任务调度方法、装置和计算机设备
CN111273965B (zh) 一种容器应用启动方法、系统、装置及电子设备
CN114418128B (zh) 一种模型部署的方法及装置
CN116932175B (zh) 一种基于序列生成的异构芯片任务调度方法以及装置
CN116107728B (zh) 一种任务执行方法、装置、存储介质及电子设备
CN116737345A (zh) 分布式任务处理系统及方法、装置、存储介质以及设备
CN111930516A (zh) 一种负载均衡方法及相关装置
CN111857995A (zh) 进程调度方法和装置、存储介质及电子装置
CN109634812B (zh) Linux系统的进程CPU占用率控制方法、终端设备及存储介质
CN107704502B (zh) 一种路由方法、装置、设备及系统
CN114968422A (zh) 基于变量状态自动执行合约的方法和装置
CN110659125A (zh) 一种分析任务执行方法、装置、系统及电子设备
CN110032433B (zh) 一种任务执行方法、装置、设备及介质
CN111880913A (zh) 一种任务优化的方法及装置
CN112015570A (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
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20210625