CN108628671A - 任务调度方法及装置 - Google Patents
任务调度方法及装置 Download PDFInfo
- Publication number
- CN108628671A CN108628671A CN201810399089.1A CN201810399089A CN108628671A CN 108628671 A CN108628671 A CN 108628671A CN 201810399089 A CN201810399089 A CN 201810399089A CN 108628671 A CN108628671 A CN 108628671A
- Authority
- CN
- China
- Prior art keywords
- task
- team
- delay
- queue
- delay duration
- 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
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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/48—Indexing scheme relating to G06F9/48
- G06F2209/484—Precedence
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5021—Priority
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Telephonic Communication Services (AREA)
Abstract
本发明提供一种任务调度方法及装置,涉及数据处理技术领域。该方法包括获取待入队任务的延时时长,并基于延时时长将待入队任务插入延时队列中,使得延时队列中的所有任务按照延时时长的时间升序或时间降序排列,且靠近延时队列的出队端的任务的延时时长小于或等于延时队列的入队端的任务的延时时长;检测并判断靠近出队端的任务的延时时长是否小于或等于预设值;在为是时,将靠近出队端的任务作为目标任务,并从延时队列输出目标任务。本方案通过对延时队列对任务的延时时长进行排序,将出队端的任务作为目标任务输出,可避免对延时队列中任务进行遍历,进而有助于降低运算量,降低系统资源的消耗,以及提高对任务处理的效率。
Description
技术领域
本发明涉及数据处理技术领域,具体而言,涉及一种任务调度方法及装置。
背景技术
目前大部分应用系统都有执行延时任务的需求。比如,若在做Web应用时,一般情况下是利用spring框架自带的@Scheduled注解来实现一个个定时器;如果是应用的服务,则一般可以通过直接调用java.util.Timer类来直接或间接实现定时服务。当某个应用有大量的周期性延时任务时,现有技术通常会遍历所有的任务,再选取要执行的任务,无法做到精准的选取,导致在有大量的延时任务时,耗费的系统资源大、执行效率低。因此,如何提供一种可解决上述问题的方案,已成为本领域技术人员的一大难题。
发明内容
为了克服上述现有技术中的不足,本发明提供一种任务调度方法及装置,有助于减少系统资源的消耗,提高任务的执行效率,进而解决上述问题。
为了实现上述目的,本发明较佳实施例所提供的技术方案如下所示:
本发明较佳实施例提供一种任务调度方法,应用于网络设备,所述网络设备预先存储有延时队列,所述方法包括:
获取待入队任务的延时时长,并基于所述延时时长将所述待入队任务插入所述延时队列中,使得所述延时队列中的所有任务按照所述延时时长的时间升序或时间降序排列,且靠近所述延时队列的出队端的任务的延时时长小于或等于所述延时队列的入队端的任务的延时时长;
检测并判断靠近所述出队端的任务的所述延时时长是否小于或等于预设值;
在为是时,将靠近所述出队端的任务作为目标任务,并从所述延时队列输出所述目标任务。
可选地,上述获取待入队任务的延时时长,并基于所述延时时长将所述待入队任务插入所述延时队列中的步骤之前,所述方法还包括:
判断所述延时队列中的所述所有任务是否按照所述时间升序或所述时间降序排列;
在为否时,对所述延时队列中的所述所有任务按照所述时间升序或所述时间降序排列进行排序。
可选地,上述任务预先设置有标识并关联有与所述标识对应的优先级;所述对所述延时队列中的所述所有任务按照所述时间升序或所述时间降序排列进行排序的步骤,包括:
若存在至少两个任务的所述延时时长相同,则基于所述至少两个任务的所述优先级进行升序排序或降序排序,且优先级最高的靠近所述出队端。
可选地,上述从所述延时队列输出所述目标任务的步骤之后,所述方法还包括:
判断输出的所述目标任务是否预将再次执行;
在为是时,将所述目标任务作为新的待入队任务,并按照所述时间升序或所述时间降序将所述新的待入队任务插入所述延时队列中。
可选地,上述从所述延时队列输出所述目标任务的步骤之后,所述方法还可以包括:
将所述目标任务输入至所述网络设备的任务执行器,由所述任务执行器执行所述目标任务。
可选地,上述任务包括上报任务、超时任务、报警任务、回调任务中的至少一种。
本发明较佳实施例还提供一种任务调度装置,应用于网络设备,所述网络设备预先存储有延时队列,所述任务调度装置包括:
第一入队单元,用于获取待入队任务的延时时长,并基于所述延时时长将所述待入队任务插入所述延时队列中,使得所述延时队列中的所有任务按照所述延时时长的时间升序或时间降序排列,且靠近所述延时队列的出队端的任务的延时时长小于或等于所述延时队列的入队端的任务的延时时长;
第一判断单元,用于检测并判断靠近所述出队端的任务的所述延时时长是否小于或等于预设值;
出队单元,用于在所述第一判断单元输出结果为是时,将靠近所述出队端的任务作为目标任务,并从所述延时队列输出所述目标任务。
可选地,上述任务调度装置还包括第二判断单元及排序单元;
在所述第一入队单元获取待入队任务的延时时长,并基于所述延时时长将所述待入队任务插入所述延时队列中的步骤之前,所述第二判断单元用于判断所述延时队列中的所述所有任务是否按照所述时间升序或所述时间降序排列;
所述排序单元用于在第二判断单元输出结果为否时,对所述延时队列中的所述所有任务按照所述时间升序或所述时间降序排列进行排序。
可选地,上述任务预先设置有标识并关联有与所述标识对应的优先级;所述排序单元还用于:
若存在至少两个任务的延时时长相同,则基于所述至少两个任务的所述优先级进行升序排序或降序排序,且优先级最高的靠近所述出队端。
可选地,上述任务调度装置还包括第三判断单元及第二入队单元;
所述出队单元从所述延时队列输出所述目标任务的步骤之后,所述第三判断单元用于判断输出的所述目标任务是否预将再次执行;
所述第二入队单元用于在所述第三判断单元输出结果为是时,将所述目标任务作为新的待入队任务,并按照所述时间升序或所述时间降序将所述新的待入队任务插入所述延时队列中。
相对于现有技术而言,本发明提供的任务调度方法及装置至少具有以下有益效果:该方法包括获取待入队任务的延时时长,并基于延时时长将待入队任务插入延时队列中,使得延时队列中的所有任务按照延时时长的时间升序或时间降序排列,且靠近延时队列的出队端的任务的延时时长小于或等于延时队列的入队端的任务的延时时长;检测并判断靠近出队端的任务的延时时长是否小于或等于预设值;在为是时,将靠近出队端的任务作为目标任务,并从延时队列输出目标任务。本方案通过对延时队列对任务的延时时长进行排序,将出队端的任务作为目标任务输出,可避免对延时队列中任务进行遍历,进而有助于降低运算量,降低系统资源的消耗,以及提高对任务处理的效率。
为使本发明的上述目的、特征和优点能更明显易懂,下文特举本发明较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍。应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本发明较佳实施例提供的网络设备的方框示意图。
图2为本发明较佳实施例提供的任务调度方法的流程示意图之一。
图3为本发明较佳实施例提供的任务调度方法的流程示意图之二。
图4为本发明较佳实施例提供的任务调度装置的方框示意图之一。
图5为本发明较佳实施例提供的任务调度装置的方框示意图之二。
图标:10-网络设备;11-处理单元;12-通信单元;13-存储单元;100-任务调度装置;110-第一入队单元;120-第一判断单元;130-出队单元;140-第二判断单元;150-排序单元;160-第三判断单元;170-第二入队单元。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。
因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。此外,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
在现有技术中,大部分应用系统都有执行延时任务的需求,对于有大量的延时任务需要执行时,通常要遍历每个延时任务的执行条件,然后才能确定需要执行的任务并将该任务输出,而该方式使得系统对任务处理的计算量较大,耗费的系统资源多。
如何提供一种科学的任务调度方法,能够准确确定需要执行的任务并降低系统的资源消耗,是本领域技术人员的一大难题。鉴于上述问题,本申请发明人经过长期研究探索,提出以下实施例以解决上述问题。下面结合附图,对本发明实施例作详细说明。在不冲突的情况下,下述的实施例及实施例中的特征可以相互组合。
请参照图1,为本发明较佳实施例提供的网络设备10的方框示意图。本发明提供的网络设备10可以用于执行下述的任务调度方法,有助于减少对系统资源的消耗,提高任务的执行效率。
进一步地,所述网络设备10可以是,但不限于个人电脑(personal computer,PC)、平板电脑、个人数字助理(personal digital assistant,PDA)、移动上网设备(mobileInternet device,MID)等。
在本实施例中,所述网络设备10可以包括处理单元11、通信单元12、存储单元13以及任务调度装置100,所述处理单元11、通信单元12、存储单元13以及任务调度装置100各个元件之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可通过一条或多条通讯总线或信号线实现电性连接。
所述处理单元11可以是处理器。例如,该处理器可以是中央处理器(CentralProcessing Unit,CPU)、图形处理器(Graphics Processing Unit,GPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。
所述通信单元12用于通过网络建立网络设备10与其他电子设备(比如服务器、智能手机等)的通信连接,并通过所述网络收发数据。该网络可以是有线网络或无线网络,这里不作具体限定。
所述存储单元13可以是,但不限于,随机存取存储器,只读存储器,可编程只读存储器,可擦除可编程只读存储器,电可擦除可编程只读存储器等。在本实施例中,所述存储单元13可以用于存储延时队列、任务等。当然,所述存储单元13还可以用于存储程序,所述处理单元11在接收到执行指令后,执行该程序。
进一步地,所述任务调度装置100包括至少一个可以软件或固件(firmware)的形式存储于所述存储单元13中或固化在所述网络设备10操作系统(operating system,OS)中的软件功能模块。所述处理单元11用于执行所述存储单元13中存储的可执行模块,例如任务调度装置100所包括的软件功能模块及计算机程序等。
可以理解的是,图1所示的结构仅为网络设备10的一种结构示意图,所述网络设备10还可以包括比图1所示更多或更少的组件。图1中所示的各组件可以采用硬件、软件或其组合实现。
请参照图2,为本发明较佳实施例提供的任务调度方法的流程示意图之一。本发明较佳实施例提供的任务调度方法可以应用于上述的网络设备10,该网络设备10可以用于执行该任务调度方法的各步骤。该方法通过将任务插入延时队列中并按照一定的时间顺序进行排序,使得延时时长较短的任务优先从延时队列中输出,以避免对延时队列中每个任务进行遍历,从而有助于减少运算量,即有助于降低对系统资源的消耗。
下面将对图2中所示的任务调度方法的各步骤进行详细阐述,在本实施例中,任务调度方法可以包括以下步骤。
步骤S210,获取待入队任务的延时时长,并基于所述延时时长将所述待入队任务插入延时队列中,使得所述延时队列中的所有任务按照所述延时时长的时间升序或时间降序排列,且靠近所述延时队列的出队端的任务的延时时长小于或等于所述延时队列的入队端的任务的延时时长。
在本实施例中,网络设备10可以预先存储有延时队列,该延时队列用于存储任务。每个待入队任务预先设置有延时时长,该延时时长可根据实际情况进行设定。该待入队任务(或任务)可以包括上报任务、超时任务、报警任务、回调任务中的至少一种,当然,该任务还可以是其他类型的任务,比如为垃圾文件清理任务。
可理解地,延时时长为任务在队列中至少等待的时长,也就是任务需要在延时队列中等待不低于一个延时时长才会出队。值得说明的是,当任务插入到延时队列中时,该任务的延时时长便会随着时间的流逝而逐渐减小。
在本实施例中,上报任务可理解为存在数据需要上报,其上报数据的对象可以是网络设备10自身,也可以是与网络设备10连接的其他电子设备。比如,温度采集单元将采集的温度数据定时上报给处理单元11,或者将采集的温度数据上报给其他电子设备。超时任务、报警任务、回调任务与上报任务的执行方式相类似,这里不再赘述。
可选地,在步骤S210之前,任务调度方法还可以包括:判断所述延时队列中的所述所有任务是否按照所述时间升序或所述时间降序排列;在为否时,对所述延时队列中的所述所有任务按照所述时间升序或所述时间降序排列进行排序。
可理解地,在将待入队任务插入延时队列之前,若延时队列中存在至少一个任务,所述至少一个任务预先按照时间升序或时间降序排列在延时队列中。其中,时间升序可理解为由出队端到入队端各任务的延时时长依次呈增大趋势,时间降序可理解为由出队端到入队端各任务的延时时长依次呈减小趋势。值得说明的是,延时队列中相邻的两任务的延时时长可以相同,也可以不同。
若延时队列中不存在任务,可直接将待入队任务插入延时队列中。后续待插入的待入队任务基于已经插入到延时队列中的任务的延时时长进行排序,然后基于上述的插入方式,将新的待入队任务插入延时队列中,使得延时队列中的任务按照上述的时间升序或时间降序排列。
可选地,所述任务预先设置有标识,并关联有与所述标识对应的优先级;所述对所述延时队列中的所述所有任务按照所述时间升序或所述时间降序排列进行排序的步骤可以为:若存在至少两个任务的所述延时时长相同,则基于所述至少两个任务的所述优先级进行升序排序或降序排序,且优先级最高的靠近所述出队端。
可理解地,标识可以为任务的身份标识号码(identity,ID),可以为数字、字符或其组合,用于对各任务进行区分。任务的优先级可以根据实际情况进行设置,这里不作具体限定。
值得说明的是,若相邻的至少两个任务的延时时长相同,优先级也相同,则可以随机将这类任务进行排序。
步骤S220,检测并判断靠近所述出队端的任务的所述延时时长是否小于或等于预设值。
一般地,延时时长为0时,也就表征该任务可以出队,即预设值可以为0。当然,该预设值还可以为其他值。比如,预设值为超过任务最初设定的延时时长的一个值,也就是该预设值可以为负值,这里对预设值不作具体限定。本方案通过检测靠近出队端的任务的延时时长,以确定需要出队的任务,可避免遍历延时队列中的各任务,进而减少网络设备10的运算量,降低系统资源的消耗。
步骤S230,在为是时,将靠近所述出队端的任务作为目标任务,并从所述延时队列输出所述目标任务。
可选地,该方法在步骤S230之后,还可以包括对任务进行处理的步骤。例如,将所述目标任务输入至所述网络设备10的任务执行器,由所述任务执行器执行所述目标任务。
比如,目标任务为垃圾文件清理任务。该垃圾文件清理任务在输入任务执行器后,任务执行器便对网络设备10的至少部分垃圾文件进行删除。当然,该目标任务还可以是其他任务,这里不再赘述。
请参照图3为本发明较佳实施例提供的任务调度方法的流程示意图之二。可选地,在步骤S230之后,该方法还可以包括步骤S240及步骤S250。
步骤S240,判断输出的所述目标任务是否预将再次执行。
可理解地,存在至少部分任务在执行完后,网络设备10可能会间隔一段时长继续执行该任务,也就是需要判断目标任务是否需要再次执行。比如,标任务为周期性任务,网络设备10会每间隔一时长执行该目标任务。
步骤S250,在为是时,将所述目标任务作为新的待入队任务,并按照所述时间升序或所述时间降序将所述新的待入队任务插入所述延时队列中。
可理解地,当判断目标任务需要再次被执行时,比如,该目标任务为定时清理垃圾文件的任务。该目标任务在出队后,将基于该目标任务的延时时长并按照上述的插入方式插入到延时队列中,然后再执行上述步骤S220及步骤S230,以实现周期性任务的调度分配。
基于上述设计,本方案有利于新任务的添加以及扩展,便于对网络设备10进行维护管理,减少程序代码。另外,本方案通过对延时队列靠近入队端的任务进行判断以确定目标任务,有助于降低运算量,提高任务的执行效率。
请参照图4,为本发明较佳实施例提供的任务调度装置100的方框示意图之一。本发明提供的任务调度装置100可以引用于上述的网络设备10,用于执行如图2所示的任务调度方法的各步骤。该任务调度装置100可以包括第一入队单元110、第一判断单元120及出队单元130。
第一入队单元110,用于获取待入队任务的延时时长,并基于所述延时时长将所述待入队任务插入所述延时队列中,使得所述延时队列中的所有任务按照所述延时时长的时间升序或时间降序排列,且靠近所述延时队列的出队端的任务的延时时长小于或等于所述延时队列的入队端的任务的延时时长。具体地,第一入队单元110可以用于执行如图2所示的步骤S210,具体执行的操作内容参照对步骤S210的详细描述,这里不再赘述。
第一判断单元120,用于检测并判断靠近所述出队端的任务的所述延时时长是否小于或等于预设值。具体地,第一判断单元120可以用于执行如图2所示的步骤S220,具体执行的操作内容参照对步骤S220的详细描述,这里不再赘述。
出队单元130,用于在所述第一判断单元120输出结果为是时,将靠近所述出队端的任务作为目标任务,并从所述延时队列输出所述目标任务。具体地,出队单元130可以用于执行如图2所示的步骤S230,具体执行的操作内容参照对步骤S230的详细描述,这里不再赘述。
请参照图5,为本发明较佳实施例提供的任务调度装置100的方框示意图之二。可选地,任务调度装置100还可以包括第二判断单元140、排序单元150、第三判断单元160及第二入队单元170。
在所述第一入队单元110获取待入队任务的延时时长,并基于所述延时时长将所述待入队任务插入所述延时队列中的步骤之前,所述第二判断单元140用于判断所述延时队列中的所述所有任务是否按照所述时间升序或所述时间降序排列。
所述排序单元150用于在第二判断单元140输出结果为否时,对所述延时队列中的所述所有任务按照所述时间升序或所述时间降序排列进行排序。
所述任务预先设置有标识并关联有与所述标识对应的优先级;所述排序单元150还用于:若存在至少两个任务的延时时长相同,则基于所述至少两个任务的所述优先级进行升序排序或降序排序,且优先级最高的靠近所述出队端。
所述出队单元130从所述延时队列输出所述目标任务的步骤之后,所述第三判断单元160用于判断输出的所述目标任务是否预将再次执行。具体地,第三判断单元160可以用于执行如图3所示的步骤S240,具体执行的操作内容参照对步骤S240的详细描述,这里不再赘述。
所述第二入队单元170用于在所述第三判断单元160输出结果为是时,将所述目标任务作为新的待入队任务,并按照所述时间升序或所述时间降序将所述新的待入队任务插入所述延时队列中。具体地,第二入队单元170可以用于执行如图3所示的步骤S250,具体执行的操作内容参照对步骤S250的详细描述,这里不再赘述。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可以通过硬件实现,也可以借助软件加必要的通用硬件平台的方式来实现,基于这样的理解,本发明的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器等)执行本发明各个实施场景所述的方法。
综上所述,本发明提供一种任务调度方法及装置。该方法包括获取待入队任务的延时时长,并基于延时时长将待入队任务插入延时队列中,使得延时队列中的所有任务按照延时时长的时间升序或时间降序排列,且靠近延时队列的出队端的任务的延时时长小于或等于延时队列的入队端的任务的延时时长;检测并判断靠近出队端的任务的延时时长是否小于或等于预设值;在为是时,将靠近出队端的任务作为目标任务,并从延时队列输出目标任务。本方案通过对延时队列对任务的延时时长进行排序,将出队端的任务作为目标任务输出,可避免对延时队列中任务进行遍历,进而有助于降低运算量,降低系统资源的消耗,有助于提高对任务处理的效率。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种任务调度方法,其特征在于,应用于网络设备,所述网络设备预先存储有延时队列,所述方法包括:
获取待入队任务的延时时长,并基于所述延时时长将所述待入队任务插入所述延时队列中,使得所述延时队列中的所有任务按照所述延时时长的时间升序或时间降序排列,且靠近所述延时队列的出队端的任务的延时时长小于或等于所述延时队列的入队端的任务的延时时长;
检测并判断靠近所述出队端的任务的所述延时时长是否小于或等于预设值;
在为是时,将靠近所述出队端的任务作为目标任务,并从所述延时队列输出所述目标任务。
2.根据权利要求1所述的方法,其特征在于,所述获取待入队任务的延时时长,并基于所述延时时长将所述待入队任务插入所述延时队列中的步骤之前,所述方法还包括:
判断所述延时队列中的所述所有任务是否按照所述时间升序或所述时间降序排列;
在为否时,对所述延时队列中的所述所有任务按照所述时间升序或所述时间降序排列进行排序。
3.根据权利要求2所述的方法,其特征在于,所述任务预先设置有标识并关联有与所述标识对应的优先级;所述对所述延时队列中的所述所有任务按照所述时间升序或所述时间降序排列进行排序的步骤,包括:
若存在至少两个任务的所述延时时长相同,则基于所述至少两个任务的所述优先级进行升序排序或降序排序,且优先级最高的靠近所述出队端。
4.根据权利要求1所述的方法,其特征在于,所述从所述延时队列输出所述目标任务的步骤之后,所述方法还包括:
判断输出的所述目标任务是否预将再次执行;
在为是时,将所述目标任务作为新的待入队任务,并按照所述时间升序或所述时间降序将所述新的待入队任务插入所述延时队列中。
5.根据权利要求1所述的方法,其特征在于,所述从所述延时队列输出所述目标任务的步骤之后,所述方法还可以包括:
将所述目标任务输入至所述网络设备的任务执行器,由所述任务执行器执行所述目标任务。
6.根据权利要求1-5中任意一项所述的方法,其特征在于,所述任务包括上报任务、超时任务、报警任务、回调任务中的至少一种。
7.一种任务调度装置,其特征在于,应用于网络设备,所述网络设备预先存储有延时队列,所述任务调度装置包括:
第一入队单元,用于获取待入队任务的延时时长,并基于所述延时时长将所述待入队任务插入所述延时队列中,使得所述延时队列中的所有任务按照所述延时时长的时间升序或时间降序排列,且靠近所述延时队列的出队端的任务的延时时长小于或等于所述延时队列的入队端的任务的延时时长;
第一判断单元,用于检测并判断靠近所述出队端的任务的所述延时时长是否小于或等于预设值;
出队单元,用于在所述第一判断单元输出结果为是时,将靠近所述出队端的任务作为目标任务,并从所述延时队列输出所述目标任务。
8.根据权利要求7所述的任务调度装置,其特征在于,所述任务调度装置还包括第二判断单元及排序单元;
在所述第一入队单元获取待入队任务的延时时长,并基于所述延时时长将所述待入队任务插入所述延时队列中的步骤之前,所述第二判断单元用于判断所述延时队列中的所述所有任务是否按照所述时间升序或所述时间降序排列;
所述排序单元用于在第二判断单元输出结果为否时,对所述延时队列中的所述所有任务按照所述时间升序或所述时间降序排列进行排序。
9.根据权利要求8所述的任务调度装置,其特征在于,所述任务预先设置有标识并关联有与所述标识对应的优先级;所述排序单元还用于:
若存在至少两个任务的延时时长相同,则基于所述至少两个任务的所述优先级进行升序排序或降序排序,且优先级最高的靠近所述出队端。
10.根据权利要求7所述的任务调度装置,其特征在于,所述任务调度装置还包括第三判断单元及第二入队单元;
所述出队单元从所述延时队列输出所述目标任务的步骤之后,所述第三判断单元用于判断输出的所述目标任务是否预将再次执行;
所述第二入队单元用于在所述第三判断单元输出结果为是时,将所述目标任务作为新的待入队任务,并按照所述时间升序或所述时间降序将所述新的待入队任务插入所述延时队列中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810399089.1A CN108628671A (zh) | 2018-04-28 | 2018-04-28 | 任务调度方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810399089.1A CN108628671A (zh) | 2018-04-28 | 2018-04-28 | 任务调度方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108628671A true CN108628671A (zh) | 2018-10-09 |
Family
ID=63694954
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810399089.1A Pending CN108628671A (zh) | 2018-04-28 | 2018-04-28 | 任务调度方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108628671A (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111258728A (zh) * | 2020-01-09 | 2020-06-09 | 浙江大搜车软件技术有限公司 | 任务的执行方法及装置、存储介质和电子装置 |
CN111258782A (zh) * | 2020-01-17 | 2020-06-09 | 北京海益同展信息科技有限公司 | 任务队列的处理方法和装置 |
CN111930490A (zh) * | 2020-09-25 | 2020-11-13 | 武汉中科通达高新技术股份有限公司 | 一种流媒体任务管理方法及装置 |
CN112286704A (zh) * | 2020-11-19 | 2021-01-29 | 每日互动股份有限公司 | 延时任务的处理方法、装置、计算机设备及存储介质 |
CN112925618A (zh) * | 2021-02-22 | 2021-06-08 | 北京达佳互联信息技术有限公司 | 一种分布式任务的处理方法和装置 |
CN114244852A (zh) * | 2021-11-09 | 2022-03-25 | 北京罗克维尔斯科技有限公司 | 数据传输方法、装置、设备及存储介质 |
CN114844844A (zh) * | 2022-04-25 | 2022-08-02 | 平安普惠企业管理有限公司 | 延时消息处理方法、装置、设备及存储介质 |
CN115037703A (zh) * | 2021-03-04 | 2022-09-09 | 阿里巴巴新加坡控股有限公司 | 数据处理方法、装置、计算机存储介质及计算机程序产品 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101183316A (zh) * | 2007-11-28 | 2008-05-21 | 北京中星微电子有限公司 | 实时操作系统中的任务延时处理方法及系统 |
CN101651614A (zh) * | 2009-09-14 | 2010-02-17 | 华为技术有限公司 | 多端口队列调度方法及设备 |
KR20140031606A (ko) * | 2012-09-05 | 2014-03-13 | (주)토탈소프트뱅크 | 컨테이너 터미널에서의 작업 지연원인 분석방법 |
CN105684364A (zh) * | 2013-10-30 | 2016-06-15 | 阿尔卡特朗讯公司 | 用于分组交换网络中的队列管理的方法和系统 |
CN107360107A (zh) * | 2017-08-25 | 2017-11-17 | 东南大学 | 一种适用于片上网络中低延时的交叉开关调度方法 |
-
2018
- 2018-04-28 CN CN201810399089.1A patent/CN108628671A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101183316A (zh) * | 2007-11-28 | 2008-05-21 | 北京中星微电子有限公司 | 实时操作系统中的任务延时处理方法及系统 |
CN101651614A (zh) * | 2009-09-14 | 2010-02-17 | 华为技术有限公司 | 多端口队列调度方法及设备 |
KR20140031606A (ko) * | 2012-09-05 | 2014-03-13 | (주)토탈소프트뱅크 | 컨테이너 터미널에서의 작업 지연원인 분석방법 |
CN105684364A (zh) * | 2013-10-30 | 2016-06-15 | 阿尔卡特朗讯公司 | 用于分组交换网络中的队列管理的方法和系统 |
CN107360107A (zh) * | 2017-08-25 | 2017-11-17 | 东南大学 | 一种适用于片上网络中低延时的交叉开关调度方法 |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111258728A (zh) * | 2020-01-09 | 2020-06-09 | 浙江大搜车软件技术有限公司 | 任务的执行方法及装置、存储介质和电子装置 |
CN111258782A (zh) * | 2020-01-17 | 2020-06-09 | 北京海益同展信息科技有限公司 | 任务队列的处理方法和装置 |
CN111258782B (zh) * | 2020-01-17 | 2023-11-03 | 京东科技信息技术有限公司 | 任务队列的处理方法和装置 |
CN111930490A (zh) * | 2020-09-25 | 2020-11-13 | 武汉中科通达高新技术股份有限公司 | 一种流媒体任务管理方法及装置 |
CN112286704A (zh) * | 2020-11-19 | 2021-01-29 | 每日互动股份有限公司 | 延时任务的处理方法、装置、计算机设备及存储介质 |
CN112286704B (zh) * | 2020-11-19 | 2023-08-15 | 每日互动股份有限公司 | 延时任务的处理方法、装置、计算机设备及存储介质 |
CN112925618A (zh) * | 2021-02-22 | 2021-06-08 | 北京达佳互联信息技术有限公司 | 一种分布式任务的处理方法和装置 |
CN115037703A (zh) * | 2021-03-04 | 2022-09-09 | 阿里巴巴新加坡控股有限公司 | 数据处理方法、装置、计算机存储介质及计算机程序产品 |
CN115037703B (zh) * | 2021-03-04 | 2024-04-19 | 阿里巴巴创新公司 | 数据处理方法、装置、计算机存储介质及计算机程序产品 |
CN114244852A (zh) * | 2021-11-09 | 2022-03-25 | 北京罗克维尔斯科技有限公司 | 数据传输方法、装置、设备及存储介质 |
CN114244852B (zh) * | 2021-11-09 | 2024-01-30 | 北京罗克维尔斯科技有限公司 | 数据传输方法、装置、设备及存储介质 |
CN114844844A (zh) * | 2022-04-25 | 2022-08-02 | 平安普惠企业管理有限公司 | 延时消息处理方法、装置、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108628671A (zh) | 任务调度方法及装置 | |
WO2020000944A1 (zh) | 基于抢占式调度的资源共享使用方法、系统及设备 | |
Vilím | Timetable edge finding filtering algorithm for discrete cumulative resources | |
CN106155807A (zh) | 一种实现资源调度的方法与设备 | |
CN106776395B (zh) | 一种共享集群的任务调度方法及装置 | |
CN110162388A (zh) | 一种任务调度方法、系统及终端设备 | |
TW200401529A (en) | System and method for the allocation of grid computing workload to network workstations | |
US7920282B2 (en) | Job preempt set generation for resource management | |
CN107273200B (zh) | 一种针对异构存储的任务调度方法 | |
CN104182278A (zh) | 一种判定计算机硬件资源繁忙程度的方法和装置 | |
CN109710414A (zh) | 一种作业调度方法、装置、设备及存储介质 | |
CN109840139A (zh) | 资源管理的方法、装置、电子设备及存储介质 | |
CN109656733A (zh) | 智能调度多ocr识别引擎的方法及设备 | |
CN114116149A (zh) | 一种任务调度方法、装置、设备及介质 | |
CN107547441A (zh) | Can报文滤波解析方法、系统及电子控制单元 | |
CN116820709B (zh) | 任务链的运行方法、装置、终端及计算机存储介质 | |
Bi et al. | Dynamic fine-grained resource provisioning for heterogeneous applications in virtualized cloud data center | |
CN113347268B (zh) | 基于分布式网络组网方法、装置、存储介质及计算机设备 | |
CN108984297A (zh) | 任务执行方法及装置 | |
CN108762786A (zh) | 一种服务器机柜的固件更新方法、服务器机柜及主机 | |
Meyer et al. | Pipel: exploiting resource reorganisation to optimise performance of pipeline-structured applications in the cloud | |
CN109840135A (zh) | 一种负载均衡方法、装置及电子设备 | |
US11789773B2 (en) | Computing device for handling tasks in a multi-core processor, and method for operating computing device | |
US20230305948A1 (en) | End-to-end computer sysem testing | |
CN114706667B (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 |
Application publication date: 20181009 |
|
RJ01 | Rejection of invention patent application after publication |