CN110955502B - 一种任务调度方法及装置 - Google Patents

一种任务调度方法及装置 Download PDF

Info

Publication number
CN110955502B
CN110955502B CN201811130422.5A CN201811130422A CN110955502B CN 110955502 B CN110955502 B CN 110955502B CN 201811130422 A CN201811130422 A CN 201811130422A CN 110955502 B CN110955502 B CN 110955502B
Authority
CN
China
Prior art keywords
task
priority
new
adjustment request
identifier
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.)
Active
Application number
CN201811130422.5A
Other languages
English (en)
Other versions
CN110955502A (zh
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 Gridsum Technology Co Ltd
Original Assignee
Beijing Gridsum 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 Gridsum Technology Co Ltd filed Critical Beijing Gridsum Technology Co Ltd
Priority to CN201811130422.5A priority Critical patent/CN110955502B/zh
Publication of CN110955502A publication Critical patent/CN110955502A/zh
Application granted granted Critical
Publication of CN110955502B publication Critical patent/CN110955502B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/48Indexing scheme relating to G06F9/48
    • G06F2209/484Precedence

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本发明公开了一种任务调度方法及装置,涉及计算机技术领域,主要目的在于实现对队列中任务的优先级调整,提高任务调度的灵活性。本发明主要的技术方案为:根据任务的优先级调整请求,将所述任务的任务标识加入全局过滤器,所述全局过滤器用于记录禁止执行的任务的任务标识;根据所述任务标识获取任务数据,生成新任务,所述新任务具有新任务标识;将所述新任务加入所述优先级调整请求对应的任务队列中,以便执行所述新任务;阻止执行与所述全局过滤器中的任务标识相匹配的任务。本发明主要用于调整任务队列中的任务优先级。

Description

一种任务调度方法及装置
技术领域
本发明涉及计算机技术领域,尤其涉及一种任务调度方法及装置。
背景技术
随着计算机技术和互联网技术的迅速发展,用户可以很容易地接入互联网,并向互联网上的服务器提交任务,服务器则可以通过执行用户提交的任务,为用户提供相应的服务。对于一个互联网产品而言,往往会被大量的用户在同一时间段使用。用户在使用互联网产品时所发出的任务请求指令,服务器通常会将任务请求指令对应的任务提交到一个抽象的队列,将任务堆积起来,然后通过一些调度策略,从队列中选取某个具体任务并触发执行。
目前,对任务调度的处理一般是使用两类队列,一类为高优先级队列,一类为普通队列,在任务被创建时,指定任务的优先级,进而根据任务的优先级调度到对应的队列中。然而,队列处理任务时所遵循的是先进先出的顺序,对于已经被分配到队列中的任务,则无法对其进行有效的调度,因此,现有的任务调度处理机制对于这种已被分入队列中的任务的突发性任务调度,还无法有效实现。
发明内容
有鉴于此,本发明提供一种任务调度方法及装置,主要目的在于实现对队列中任务的优先级调整,提高任务调度的灵活性。
为达到上述目的,本发明主要提供如下技术方案:
一方面,本发明提供了一种任务调度方法,该方法包括:
根据任务的优先级调整请求,将所述任务的任务标识加入全局过滤器;
根据所述任务标识获取任务数据,生成新任务,所述新任务具有新任务标识;
将所述新任务加入所述优先级调整请求对应的任务队列中,以便执行所述新任务;
阻止执行与所述全局过滤器中的任务标识相匹配的任务。
优选的,在将所述新任务加入所述优先级调整请求对应的任务队列中之前,所述方法还包括:
判断任务数量是否大于阈值,所述任务数量为发起所述优先级调整请求的用户在预设条件下请求调整优先级的任务数量;
若大于所述阈值,则缓存所述新任务;
若小于或等于所述阈值,则执行所述将所述新任务加入所述优先级调整请求对应的任务队列中的操作。
优选的,所述阈值为单位时间内的调整数量,则所述缓存所述新任务包括:
在所述单位时间内,缓存所述新任务;
当超出所述单位时间时,将所述任务数量清零,将缓存的所述新任务加入所述优先级调整请求对应的任务队列中。
优选的,在根据任务的优先级调整请求,将所述任务的任务标识加入全局过滤器之前,所述方法还包括:
根据创建的任务,将所述任务的上下文数据存储至数据库中。
优选的,根据所述任务标识获取任务数据,生成新任务包括:
从所述数据库中提取所述任务的上下文数据;
利用所述上下文数据以及所述优先级调整请求中的优先级生成新任务。
优选的,根据任务的优先级调整请求,将所述任务的任务标识加入全局过滤器包括:
根据优先级调整请求将所述任务的任务标识与调整前的优先级加入全局过滤器;
所述阻止执行与所述全局过滤器中的任务标识相匹配的任务包括:
在执行任务之前,利用全局过滤器匹配所述任务的任务标识与优先级,阻止匹配成功的任务继续执行。
另一方面,本发明还提供了一种任务调度装置,该装置包括:
任务标识添加单元,用于根据任务的优先级调整请求,将所述任务的任务标识加入全局过滤器,所述全局过滤器用于记录禁止执行的任务的任务标识;
任务生成单元,用于根据所述任务标识获取任务数据,生成新任务,所述新任务具有新任务标识;
任务队列加入单元,用于将所述任务生成单元生成的新任务加入所述优先级调整请求对应的任务队列中,以便执行所述新任务;
任务过滤单元,用于阻止执行与所述任务标识添加单元在全局过滤器中加入的任务标识相匹配的任务。
优选的,所述装置还包括:
判断单元,用于在所述任务队列加入单元将所述新任务加入所述优先级调整请求对应的任务队列中之前,判断任务数量是否大于阈值,所述任务数量为发起所述优先级调整请求的用户在预设条件下请求调整优先级的任务数量;
任务缓存单元,用于当所述判断单元确定大于阈值时,缓存所述新任务;
所述任务队列加入单元还用于,当所述判断单元确定小于或等于阈值时,执行所述将所述新任务加入所述优先级调整请求对应的任务队列中的操作。
优选的,所述阈值为单位时间内的调整数量,则所述任务缓存单元还用于,在所述单位时间内,缓存所述新任务;
所述任务队列加入单元还用于,当超出所述单位时间时,将所述任务数量清零,将所述任务缓存单元缓存的所述新任务加入所述优先级调整请求对应的任务队列中。
优选的,所述装置还包括:
数据存储单元,用于在所述任务标识添加单元根据任务的优先级调整请求,将所述任务的任务标识加入全局过滤器之前,根据创建的任务,将所述任务的上下文数据存储至数据库中。
优选的,所述任务生成单元包括:
数据提取模块,用于从所述数据库中提取所述任务的上下文数据;
生成模块,用于利用所述上下文数据以及所述优先级调整请求中的优先级生成新任务。
优选的,所述任务标识添加单元还用于,根据优先级调整请求将所述任务的任务标识与调整前的优先级加入全局过滤器;
所述任务过滤单元还用于,在执行任务之前,利用所述全局过滤器匹配所述任务的任务标识与优先级,阻止匹配成功的任务继续执行。
为了实现上述目的,根据本发明的另一方面,提供了一种存储介质,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行上述所述的任务调度方法。
为了实现上述目的,根据本发明的另一方面,提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行上述所述的任务调度方法。
依据上述本发明所提出的任务调度方法及装置,主要针对的是已经加入任务队列中的任务,在需要对这些任务进行优先级调整时,由于任务队列中的任务需要遵循先进先出的处理原则,因而无法实现实时地动态调整任务的优先级,对此,本发明通过根据任务优先级的需求,新生成一个任务,并将新任务调度到对应优先级的任务队列中,同时,对于已分配任务队列的原任务,本发明通过在全局过滤器中加入原任务的任务标识,并在执行任务时利用该全局过滤器判断是否执行任务,如此,便实现了执行调度后的新任务而禁止原任务执行的目的。解决了任务队列中任务优先级无法动态调整的问题,提高了任务调度的灵活性。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了本发明实施例提出的一种任务调度方法的流程图;
图2示出了本发明实施例提出的另一种任务调度方法的流程图;
图3示出了本发明实施例提出的一种任务调度装置的组成框图;
图4示出了本发明实施例提出的另一种任务调度装置的组成框图。
具体实施方式
下面将参照附图更详细地描述本发明的示例性实施例。虽然附图中显示了本发明的示例性实施例,然而应当理解,可以以各种形式实现本发明而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本发明,并且能够将本发明的范围完整的传达给本领域的技术人员。
本发明实施例提供了一种任务调度的方法,如图1所示,该方法是对任务队列中的任务存在优先级调整的需求时,实现对任务优先级的实时动态调度。其具体步骤包括:
101、根据任务的优先级调整请求,将该任务的任务标识加入全局过滤器。
其中,该全局过滤器在本实施例中用于过滤从任务队列中提取出来准备执行的任务,即该全局过滤器中记录有禁止执行的任务的任务标识。具体地,该全局过滤器通过任务标识来识别任务,该任务标识一般使用任务ID。本步骤通过获取优先级调整请求中所调整任务的任务标识,将其加入全局过滤器中,以防止相同任务被多次执行,浪费处理资源。
此外,在执行本步骤时,还可以对优先级调整请求对应的任务进行查询,判断该任务是否处于当前队列中,若存在则根据该优先级调整请求执行后续步骤,而如果不存在,则需要向用户反馈提示信息。此处,造成任务不存在的情况可能有两种,一种是该任务还未创建,此时可以提示用户是否创建该任务;另一种是该任务已被执行,此时则提示用户是否重新执行该任务。
需要说明的是,本实施例中对于优先级调整请求不限定该请求中包含的任务数量,即一个用户在一个优先级调整请求中可以仅调整一个任务的优先级,也可以同时调整多个任务的优先级。
102、根据任务标识获取任务数据,生成新任务。
本步骤中的任务标识是根据优先级调整请求提取的对应任务的任务标识。在本实施例中,任务数据是指执行任务时所需的数据内容,将这些数据内容进行备份后进行存储,在需要对任务进行优先级调整时,根据任务标识提取出备份的数据内容,再生成一个新任务。也就是说,本步骤是利用任务执行所需的数据内容,重新创建一个新任务,而该新任务的优先级可以设置为优先级调整请求中所指定的优先级。
该新任务与已经加入到队列中的原任务相比,其任务所要执行的内容是相同的,但是新任务的任务标识与原任务是不同的,即新任务具有新任务标识。
103、将新任务加入优先级调整请求对应的任务队列中,以便执行该新任务。
通过执行本步骤,实现了将新任务按照需求加入对应的任务队列中,由于新任务与调整前的原始任务所执行的内容相同,因此,在将新任务加入任务队列的同时,还需要阻止原始任务的执行才能达到调整优先级的目的。
本发明实施例中,优先级的调整分为两种,一种是提高优先级,另一种则是降低优先级。对于提高优先级,加入高优先级任务队列中的新任务一般会早于原始任务得到执行,此时,虽然已经实现了优先级调整请求的目的,但通过步骤104的操作可以过滤掉已经执行过的任务,从而提高所有队列的任务处理效率。而对于减低优先级,由于高优先级任务队列中的原始任务依然存在,因此,执行步骤104将确保实现用户目的,达到优先级调整请求对任务执行顺序进行调整的效果。
104、阻止执行与全局过滤器中的任务标识相匹配的任务。
本步骤是在执行任务时,即从任务队列中提取到待执行的任务后,将该任务输入全局过滤器进行过滤,将该任务的任务标识与全局过滤器中存储的任务标识进行匹配,当匹配成功时,禁止执行该任务,从任务队列中提取下一个待执行的任务,当匹配失败时,则正常执行该任务。
结合上述的实现方式可以看出,本发明实施例所采用的任务调度方法,是对已加入任务队列中的任务进行优先级的动态调整,实现将任务在不同优先级任务队列中调整的目的。为此,本发明实施例是根据优先级调整请求,重新生成一个新任务,并将该新任务加入到指定的优先级中,同时,将被调整任务的任务标识加入全局过滤器,在执行任务时,利用该全局过滤器过滤掉被调整的任务,防止同一任务被多次执行,提升任务处理效率。通过本发明实施例的调整方式,可以不受任务队列先进先出原则的影响,将队列中的任务根据用户需求调整优先级,改变任务所处的任务队列,实现任务优先级的动态调整。
以下为了更加详细地说明本发明提出的一种任务调度方法,特别是针对任务队列中的任务出现阻塞时,如何防止任务队列在进行过度优先级调整后导致任务阻塞的问题,本发明实施例将结合具体示例说明进一步提出一种任务调度方法,如图2所示,该方法的具体步骤如下:
201、根据创建的任务,将任务的上下文数据存储至数据库中。
其中,任务的上下文数据是指执行任务所需的数据内容,是构成任务的核心内容。在创建任务的同时,提取该任务的上下文数据,并将其存储至数据库中,以便该任务在被分配到任务队列之后,需要对其调整优先级时能够从该数据库中提取出对应的上下文数据,从而生成与该任务相同的新任务。
基于本步骤,在将任务加入任务队列时,本发明的另一种实施例可以将该任务的任务副本或任务标识根据任务的优先级加入对应的任务队列中,在执行任务时,根据从任务队列中所提取的任务副本或任务标识,再从数据库中获取对应的上下文数据,生成可执行的任务。
202、根据优先级调整请求将该任务的任务标识加入全局过滤器。
本实施例在生成新任务时,该新任务所对应的任务标识与原任务是不同的。因此,根据全局过滤器记载的任务标识即可区分哪些任务是需要禁止执行的。
进一步的,在本发明的另一可行实施例中,如果生成新任务的任务标识与原任务的任务标识相同,那么,就需要根据优先级调整请求将该任务的任务标识与调整前的优先级加入全局过滤器。在过滤时,通过任务标识与优先级共同匹配任务,以提高对将调整前任务的识别准确率。
203、从数据库中提取任务的上下文数据,生成新任务。
具体的,根据优先级调整请求中对应任务的任务标识在数据库中提取该任务的上下文数据,结合所提取的上下文数据与优先级调整请求中所指定的优先级生成一个新任务。
204、判断新任务对应的请求用户发起调整优先级的任务数量是否大于阈值。
一般地,高优先级任务队列中的任务会被优先处理,但是如果该任务队列中的任务过多,也会导致任务阻塞,从而影响任务的处理效率。因此,本发明实施例在将任务根据对应的优先级分配到任务队列中之前,会判断对应的任务队列中当前的任务数量,在达到分配条件时再将任务加入到该任务队列中。而本步骤则是特别针对通过优先级调整请求而生成的新任务,对其进行分配任务队列前的优化处理,具体为判断该新任务的请求用户所发起的任务调整数量,即通过限定用户调整任务优先级的数量来限制新任务的处理总量,当数量大于阈值时,对超出的新任务暂缓加入对应的任务队列,将其缓存在预置存储中;而当数量小于阈值时,则执行后续步骤205。
进一步的,在本发明的一种可行实施例中,上述的阈值为单位时间内的任务调整数量,比如阈值为2000/10min,即该用户在10分钟内可以调整2000个新任务的优先级,而超出的,从2001个新任务起将被缓存至指定位置中,直至超出10分钟,即进入下一个计时周期。此时,将任务调整数量清零,并将该用户所缓存的新任务从指定位置提取出来加入对应的任务队列,同时,重新累计在该计时周期内的该用户调整任务的总数量,将超出2000个的新任务再次缓存。
205、将新任务加入优先级调整请求对应的任务队列中。
206、利用全局过滤器匹配任务的任务标识与优先级,阻止匹配成功的任务继续执行。
该步骤是在执行任务前,将从任务队列中提取出的待执行任务输入全局过滤器中,通过全局过滤器中存储的任务标识与优先级对该待执行任务进行匹配,对匹配成功的阻止其继续执行,对匹配失败的继续执行该任务,如此,便可以有效阻止执行优先级调整前的任务,确保任务是按照用户需求的优先级进行有序执行。
需要说明的是,本发明实施例对于优先级调整不限定是调高任务优先级或降低任务优先级。对于调高优先级的任务,调整后的新任务一般会优先执行,此时全局过滤器将会过滤掉在后执行的调整前任务,防止同一任务的重复执行。而对于调低优先级的任务,调整前的任务一般会先被提取出任务队列,此时全局过滤器将过滤掉该任务,确保任务按照用户调整后的需求进行执行。
通过上述的实施例已详细地介绍了针对任务队列中的任务进行优先级调整,变更任务所在任务队列的具体流程,而为了实现上述目的,根据本发明的另一方面,本发明实施例还提供了一种存储介质,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行上述所述的任务调度方法。
此外,为了实现上述目的,根据本发明的另一方面,本发明实施例还提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行上述所述的任务调度方法。
进一步的,作为对上述方法的实现,本发明实施例提供了一种任务调度装置,该装置实施例与前述方法实施例对应,为便于阅读,本装置实施例不再对前述方法实施例中的细节内容进行逐一赘述,但应当明确,本实施例中的装置能够对应实现前述方法实施例中的全部内容。该装置用于对任务队列中任务的优先级进行调整,实现任务优先级的实时动态调整,具体如图3所示,该装置包括:
任务标识添加单元31,用于根据任务的优先级调整请求,将所述任务的任务标识加入全局过滤器,所述全局过滤器用于记录禁止执行的任务的任务标识;
任务生成单元32,用于根据所述任务标识获取任务数据,生成新任务,所述新任务具有新任务标识;
任务队列加入单元33,用于将所述任务生成单元32生成的新任务加入所述优先级调整请求对应的任务队列中;
任务过滤单元34,用于阻止执行与所述任务标识添加单元31在全局过滤器中加入的任务标识相匹配的任务。
进一步地,如图4所示,所述装置还包括:
判断单元35,用于在所述任务队列加入单元33将所述新任务加入所述优先级调整请求对应的任务队列中之前判断任务数量是否大于阈值,所述任务数量为发起所述优先级调整请求的用户在预设条件下请求调整优先级的任务数量;
任务缓存单元36,用于当所述判断单元35确定大于阈值时,缓存所述新任务;
所述任务队列加入单元33还用于,当所述判断单元35确定小于或等于阈值时,执行所述将所述新任务加入所述优先级调整请求对应的任务队列中的操作。
进一步地,如图4所示,所述阈值为单位时间内的调整数量,则所述任务缓存单元36还用于,在所述单位时间内,缓存所述新任务;
所述任务队列加入单元33还用于,当超出所述单位时间时,将所述请求用户调整任务优先级的任务数量清零,将所述任务缓存单元36缓存的所述新任务加入所述优先级调整请求对应的任务队列中。
进一步地,如图4所示,所述装置还包括:
数据存储单元37,用于在所述任务标识添加单元31根据任务的优先级调整请求,将所述任务的任务标识加入全局过滤器之前,根据创建的任务,将所述任务的上下文数据存储至数据库中。
进一步地,如图4所示,所述任务生成单元32包括:
数据提取模块321,用于从所述数据库中提取所述任务的上下文数据;
生成模块322,用于利用所述数据提取模块321提取的上下文数据以及所述优先级调整请求中的优先级生成新任务。
进一步地,所述任务标识添加单元31还用于,根据优先级调整请求将所述任务的任务标识与调整前的优先级加入全局过滤器;
所述任务过滤单元34还用于,在执行任务之前,利用所述全局过滤器匹配所述任务的任务标识与优先级,阻止匹配成功的任务继续执行。
综上所述,本发明实施例所采用的任务调度方法及装置,是针对任务队列中的任务进行优先级调整,将该任务调度到用户需求的任务队列中,本发明实施例通过预先保存任务的上下文数据,并在需要调整优先级时,利用存储的上下文数据创建一个新任务,添加至对应的任务队列中,并通过全局过滤器阻止调整前任务的执行,确保任务按照用户需求有序执行,同时,本发明实施例在将新任务加入对应的任务队列之前,判断发起调整优先级请求的用户是否有权执行新任务加入任务队列,以此避免由于用户过渡调整导致新任务数量过多,造成任务队列中任务阻塞的情况,提高了任务队列中任务的处理效率。
所述任务调度装置包括处理器和存储器,上述任务标识添加单元、任务生成单元、任务队列加入单元和任务过滤单元等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。
处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数来实现对队列中任务的优先级调整,提高任务调度的灵活性。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flashRAM),存储器包括至少一个存储芯片。
本发明实施例提供了一种存储介质,其上存储有程序,该程序被处理器执行时实现所述任务调度方法。
本发明实施例提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行所述任务调度方法。
本发明实施例提供了一种设备,设备包括处理器、存储器及存储在存储器上并可在处理器上运行的程序,处理器执行程序时实现以下步骤:根据任务的优先级调整请求,将所述任务的任务标识加入全局过滤器,所述全局过滤器用于记录禁止执行的任务的任务标识;根据所述任务标识获取任务数据,生成新任务,所述新任务具有新任务标识;将所述新任务加入所述优先级调整请求对应的任务队列中,以便执行所述新任务;阻止执行与所述全局过滤器中的任务标识相匹配的任务。
而本文中的设备不限定是服务器、PC、PAD、手机等。
本申请还提供了一种计算机程序产品,当在数据处理设备上执行时,适于执行初始化有如下方法步骤的程序:根据任务的优先级调整请求,将所述任务的任务标识加入全局过滤器,所述全局过滤器用于记录禁止执行的任务的任务标识;根据所述任务标识获取任务数据,生成新任务,所述新任务具有新任务标识;将所述新任务加入所述优先级调整请求对应的任务队列中,以便执行所述新任务;阻止执行与所述全局过滤器中的任务标识相匹配的任务。
进一步地,在将所述新任务加入所述优先级调整请求对应的任务队列中之前,所述方法还包括:
判断任务数量是否大于阈值,所述任务数量为发起所述优先级调整请求的用户在预设条件下请求调整优先级的任务数量;
若大于所述阈值,则缓存所述新任务;
若小于或等于所述阈值,则执行所述将所述新任务加入所述优先级调整请求对应的任务队列中的操作。
进一步地,所述阈值为单位时间内的调整数量,则所述缓存所述新任务包括:
在所述单位时间内,缓存所述新任务;
当超出所述单位时间时,将所述任务数量清零,将缓存的所述新任务加入所述优先级调整请求对应的任务队列中。
进一步地,在根据任务的优先级调整请求,将所述任务的任务标识加入全局过滤器之前,所述方法还包括:
根据创建的任务,将所述任务的上下文数据存储至数据库中。
进一步地,根据所述任务标识获取任务数据,生成新任务包括:
从所述数据库中提取所述任务的上下文数据;
利用所述上下文数据以及所述优先级调整请求中的优先级生成新任务。
进一步地,根据任务的优先级调整请求,将所述任务的任务标识加入全局过滤器包括:
根据优先级调整请求将所述任务的任务标识与调整前的优先级加入全局过滤器;
所述阻止执行与所述全局过滤器中的任务标识相匹配的任务包括:
在执行任务之前,利用全局过滤器匹配所述任务的任务标识与优先级,阻止匹配成功的任务继续执行。
本领域内的技术人员应明白,本申请的实施例可提供为方法、***、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flashRAM)。存储器是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、***或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

Claims (10)

1.一种任务调度方法,其特征在于,所述方法包括:
根据任务队列中的任务的优先级调整请求,将所述任务的任务标识加入全局过滤器,所述全局过滤器用于记录禁止执行的任务的任务标识;
根据所述任务标识获取任务数据,生成新任务,所述新任务具有新任务标识;
将所述新任务加入所述优先级调整请求对应的任务队列中,以便执行所述新任务;
阻止执行与所述全局过滤器中的任务标识相匹配的任务。
2.根据权利要求1所述的方法,其特征在于,在将所述新任务加入所述优先级调整请求对应的任务队列中之前,所述方法还包括:
判断任务数量是否大于阈值,所述任务数量为发起所述优先级调整请求的用户在预设条件下请求调整优先级的任务数量;
若大于所述阈值,则缓存所述新任务;
若小于或等于所述阈值,则执行所述将所述新任务加入所述优先级调整请求对应的任务队列中的操作。
3.根据权利要求2所述的方法,其特征在于,所述阈值为单位时间内的调整数量,则所述缓存所述新任务包括:
在所述单位时间内,缓存所述新任务;
当超出所述单位时间时,将所述任务数量清零,将缓存的所述新任务加入所述优先级调整请求对应的任务队列中。
4.根据权利要求1所述的方法,其特征在于,在根据任务队列中的任务的优先级调整请求,将所述任务的任务标识加入全局过滤器之前,所述方法还包括:
根据创建的任务,将所述任务的上下文数据存储至数据库中。
5.根据权利要求4所述的方法,其特征在于,根据所述任务标识获取任务数据,生成新任务包括:
从所述数据库中提取所述任务的上下文数据;
利用所述上下文数据以及所述优先级调整请求中的优先级生成新任务。
6.根据权利要求1-5中任一项所述的方法,其特征在于,根据任务队列中的任务的优先级调整请求,将所述任务的任务标识加入全局过滤器包括:
根据优先级调整请求将所述任务的任务标识与调整前的优先级加入全局过滤器;
所述阻止执行与所述全局过滤器中的任务标识相匹配的任务包括:
在执行任务之前,利用全局过滤器匹配所述任务的任务标识与优先级,阻止匹配成功的任务继续执行。
7.一种任务调度装置,其特征在于,所述装置包括:
任务标识添加单元,用于根据任务队列中的任务的优先级调整请求,将所述任务的任务标识加入全局过滤器,所述全局过滤器用于记录禁止执行的任务的任务标识;
任务生成单元,用于根据所述任务标识获取任务数据,生成新任务,所述新任务具有新任务标识;
任务队列加入单元,用于将所述任务生成单元生成的新任务加入所述优先级调整请求对应的任务队列中,以便执行所述新任务;
任务过滤单元,用于阻止执行与所述任务标识添加单元在全局过滤器中加入的任务标识相匹配的任务。
8.根据权利要求7所述的装置,其特征在于,所述装置还包括:
判断单元,用于在所述任务队列加入单元将所述新任务加入所述优先级调整请求对应的任务队列中之前,判断任务数量是否大于阈值,所述任务数量为发起所述优先级调整请求的用户在预设条件下请求调整优先级的任务数量;
任务缓存单元,用于当所述判断单元确定大于阈值时,缓存所述新任务;
所述任务队列加入单元还用于,当所述判断单元确定小于或等于阈值时,执行所述将所述新任务加入所述优先级调整请求对应的任务队列中的操作。
9.一种存储介质,其特征在于,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行权利要求1-6中任一项所述的任务调度方法。
10.一种处理器,其特征在于,所述处理器用于运行程序,其中,所述程序运行时执行权利要求1-6中任一项所述的任务调度方法。
CN201811130422.5A 2018-09-27 2018-09-27 一种任务调度方法及装置 Active CN110955502B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811130422.5A CN110955502B (zh) 2018-09-27 2018-09-27 一种任务调度方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811130422.5A CN110955502B (zh) 2018-09-27 2018-09-27 一种任务调度方法及装置

Publications (2)

Publication Number Publication Date
CN110955502A CN110955502A (zh) 2020-04-03
CN110955502B true CN110955502B (zh) 2022-07-05

Family

ID=69967843

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811130422.5A Active CN110955502B (zh) 2018-09-27 2018-09-27 一种任务调度方法及装置

Country Status (1)

Country Link
CN (1) CN110955502B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111797110B (zh) * 2020-06-23 2024-01-26 北京金堤科技有限公司 一种生成调度模型的方法、装置、计算机设备及存储介质
CN114090208B (zh) * 2021-11-22 2023-10-13 南方电网电力科技股份有限公司 一种电能表操作***的任务调度方法及装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101807159A (zh) * 2010-03-18 2010-08-18 西北工业大学 一种自适应任务调度方法
CN103870327A (zh) * 2012-12-18 2014-06-18 华为技术有限公司 一种实时多任务调度方法和装置
US8826280B1 (en) * 2006-03-23 2014-09-02 Emc Corporation Processing raw information for performing real-time monitoring of task queues
CN105893263A (zh) * 2016-04-25 2016-08-24 北京智能综电信息技术有限责任公司 一种测试任务调度方法
WO2017166630A1 (zh) * 2016-03-31 2017-10-05 乐视控股(北京)有限公司 一种任务优先级修正方法和装置

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9304817B2 (en) * 2013-11-25 2016-04-05 Xerox Corporation Method and apparatus for a user-driven priority based job scheduling in a data processing platform
US9740525B2 (en) * 2015-11-18 2017-08-22 Sap Se Scaling priority queue for task scheduling

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8826280B1 (en) * 2006-03-23 2014-09-02 Emc Corporation Processing raw information for performing real-time monitoring of task queues
CN101807159A (zh) * 2010-03-18 2010-08-18 西北工业大学 一种自适应任务调度方法
CN103870327A (zh) * 2012-12-18 2014-06-18 华为技术有限公司 一种实时多任务调度方法和装置
WO2017166630A1 (zh) * 2016-03-31 2017-10-05 乐视控股(北京)有限公司 一种任务优先级修正方法和装置
CN105893263A (zh) * 2016-04-25 2016-08-24 北京智能综电信息技术有限责任公司 一种测试任务调度方法

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
Yi Tang 等.A Hardware Scheduler Based on Task Queues for FPGA-Based Embedded Real-Time Systems.《IEEE Transactions on Computers》.2015,第64卷(第5期),1254-1267. *
冯径 等.一种多策略要素的数据访问调度算法.《东南大学学报(自然科学版)》.2012,第42卷(第5期),820-824. *
李薛剑 等.一种基于动态优先级的RQ作业调度算法.《小型微型计算机***》.2017,第38卷(第1期),124-128. *
杨宝星 等.一种面向BSP***的多等待队列作业调度算法.《计算机与数字工程》.2014,第42卷(第9期),1547-1552,1708. *

Also Published As

Publication number Publication date
CN110955502A (zh) 2020-04-03

Similar Documents

Publication Publication Date Title
US8818989B2 (en) Memory usage query governor
US20160019119A1 (en) Prioritizing backup of files
US8583608B2 (en) Maximum allowable runtime query governor
US10884667B2 (en) Storage controller and IO request processing method
CN110955502B (zh) 一种任务调度方法及装置
CN107402863B (zh) 一种用于通过日志***处理业务***的日志的方法与设备
CN109739627B (zh) 任务的调度方法、电子设备及介质
CN112579263A (zh) 任务执行方法及装置、存储介质及电子设备
CN109343862B (zh) 应用的资源数据的调度方法及装置
US11765099B2 (en) Resource allocation using distributed segment processing credits
CN109726007B (zh) 一种容器编排配额管理方法和装置、及容器编排***
CN111708812A (zh) 一种分布式数据处理方法
CN112416534A (zh) 一种基于Agent的任务管理方法及装置
CN110968406B (zh) 处理任务的方法、装置、存储介质和处理器
CN108270810B (zh) 媒体数据访问方法及装置
CN109582460B (zh) 一种Redis内存数据的淘汰方法和装置
CN114374652B (zh) 热磁存储和蓝光存储之间的数据传输限速方法及装置
EP3550421B1 (en) Storage controller and io request processing method
US20170168867A1 (en) Information processing system and control method
CN111176848B (zh) 集群任务的处理方法、装置、设备和存储介质
CN108920722B (zh) 一种参数配置的方法、装置及计算机存储介质
CN108270744B (zh) 媒体数据访问方法及装置
CN110618863A (zh) 一种基于Raft算法的作业调度方法
US11989181B2 (en) Optimal query scheduling for resource utilization optimization
CN116204277A (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
GR01 Patent grant
GR01 Patent grant