CN108228240A - 多任务队列中任务的处理方法和装置 - Google Patents
多任务队列中任务的处理方法和装置 Download PDFInfo
- Publication number
- CN108228240A CN108228240A CN201611155748.4A CN201611155748A CN108228240A CN 108228240 A CN108228240 A CN 108228240A CN 201611155748 A CN201611155748 A CN 201611155748A CN 108228240 A CN108228240 A CN 108228240A
- Authority
- CN
- China
- Prior art keywords
- task
- queue
- type
- title
- solicited message
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 41
- 238000012545 processing Methods 0.000 claims description 24
- 238000003672 processing method Methods 0.000 claims description 5
- 238000012360 testing method Methods 0.000 description 21
- 230000008569 process Effects 0.000 description 14
- 230000004048 modification Effects 0.000 description 8
- 238000012986 modification Methods 0.000 description 8
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 230000001360 synchronised effect Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 230000008878 coupling Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000004904 shortening Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000008707 rearrangement Effects 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3854—Instruction completion, e.g. retiring, committing or graduating
- G06F9/3856—Reordering of instructions, e.g. using queues or age tags
-
- 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/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. 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)
- Telephonic Communication Services (AREA)
Abstract
本发明公开了一种多任务队列中任务的处理方法和装置。其中,该方法包括:接收一个或多个任务的请求信息,其中,请求信息至少包括:任务的类型、任务的优先级;根据请求信息将述一个或多个任务放入相应的队列中;根据任务的类型和任务的优先级,对队列进行处理,将同一类型的任务放入不同的队列中。本发明解决了在同一个队列中同类型任务对相同资源的竞争造成任务执行效率不高的技术问题。
Description
技术领域
本发明涉及队列算法领域,具体而言,涉及一种多任务队列中任务的处理方法和装置。
背景技术
目前队列算法主要分为两类,一类是先进先出(FIFO),即最先进入队列的任务最先被取出执行;还有一类是先进后出(FILO),即最先进入队列的任务最后被取出,队列总是优先执行最新进入的任务。上述两种方案在单线程模式下都不会出问题,由于每个任务之间不会出现资源的竞争,因而,每个任务可以能很好地被执行。然而,在多线程模式下,经常会出现队列中的相邻任务去竞争同一资源造成任务失败的情况。例如线程A取出队列中的任务1,任务1要读取文件test.txt,在任务1还没有执行完成时,线程2取出了任务2,任务2要向文件test.txt中写入数据,由于任务1还没有执行完成,此时文件test.txt处于锁定状态,这样任务2就会执行失败。
为了避免上述在多线程模式下,出现队列中相邻任务竞争同一资源造成任务执行失败的问题,现有技术采用的方案是对当前正在执行的任务进行加锁,使其处于锁定状态,这样后取出的任务就处于等待状态,直到处于锁定状态的任务执行结束,下一个任务才会加锁并执行。在这种队列算法下,锁定期内的任务会阻塞后面任务,不能充分发挥计算机的计算能力,造成系统的等待时间过长,效率不高。
针对上述的问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种多任务队列中任务的处理方法和装置,以至少解决在同一个队列中同类型任务对相同资源的竞争造成任务执行效率不高的技术问题。
根据本发明实施例的一个方面,提供了一种多任务队列中任务的处理方法,包括:接收一个或多个任务的请求信息,其中,请求信息至少包括:任务的类型、任务的优先级;根据请求信息将一个或多个任务放入相应的队列中;根据队列中的任务的类型和优先级对队列进行处理,将同一类型的任务放入不同的队列中。
进一步地,根据请求信息将一个或多个任务放入相应的队列中,包括:判断请求信息中是否包含了任务要进入的队列的名称;如果请求信息中包含了任务要进入的队列的名称,则将任务放入与名称对应的队列中;如果请求信息中没有包含任务要进入的队列的名称,则将任务放入默认队列中。
进一步地,如果请求信息中包含了任务要进入的队列的名称,则将任务放入与名称对应的队列中,包括:判断是否存在与名称对应的队列;如果存在与名称对应的队列,则将任务放入与名称对应的队列中;如果不存在与名称对应的队列,则创建新的队列,并将任务放入新的队列中。
进一步地,在创建新的队列,并将任务放入新的队列中之后,方法还包括:将新的队列命名为任务的请求信息中包含的队列的名称。
进一步地,根据队列中的任务的类型和优先级对队列进行处理,将同一类型的任务放入不同的队列中,包括:判断队列中是否存在类型相同的任务;如果队列中不存在类型相同的任务,则按照队列中的全部任务的优先级对队列中的任务进行排序;如果队列中存在类型相同的任务,则将类型相同的多个任务放入不同的多个队列中。
进一步地,将类型相同的多个任务放入不同的多个队列中,包括:判断除类型相同的多个任务所在的队列以外的其它队列中是否存在与类型相同的多个任务的类型相同的任务;如果不存在,则将类型相同的多个任务中的一个任务放入其它队列中的一个队列。
进一步地,如果剩余的其它队列中都存在与类型相同的多个任务的类型相同的任务,则创建至少一个新的队列,并将每个类型相同的任务放入不同的新的队列中,直至每个类型相同的任务均放入不同的队列。
根据本发明实施例的另一方面,还提供了一种多任务队列中任务的处理装置,包括:接收模块,用于接收一个或多个任务的请求信息,其中,请求信息至少包括:任务的类型、任务的优先级;第一处理模块,用于根据请求信息将一个或多个任务放入相应的队列中;第二处理模块,用于根据队列中的任务的类型和优先级对队列进行处理,将同一类型的任务放入不同的队列中。
进一步地,第一处理模块包括:第一判断模块,用于判断请求信息中是否包含了任务要进入的队列的名称;第一执行模块,用于如果请求信息中包含了任务要进入的队列的名称,则将任务放入与名称对应的队列中;第二执行模块,用于如果请求信息中没有包含任务要进入的队列的名称,则将任务放入默认队列中。
进一步地,第一执行子模块包括:第二判断模块,用于判断是否存在与名称对应的队列;第三执行模块,用于如果存在与名称对应的队列,则将任务放入与名称对应的队列中;第四执行模块,用于如果不存在与名称对应的队列,则创建新的队列,并将任务放入新的队列中。
进一步地,第四执行模块包括:创建模块,用于将新的队列命名为任务的请求信息中包含的队列的名称。
进一步地,第二处理模块包括:第三判断模块,用于判断队列中是否存在类型相同的任务;第五执行模块,用于如果队列中不存在类型相同的任务,则将所述任务放入所述队列中并按照任务的优先级将队列中的任务进行排序;第六执行模块,用于如果队列中存在类型相同的任务,将类型相同的多个任务放入不同的多个队列中。
进一步地,第六执行模块包括:第四判断模块,用于判断除类型相同的多个任务所在的队列以外的其它队列中是否存在与类型相同的多个任务的类型相同的任务;第七执行模块,用于如果队列中不存在与类型相同的任务,则将类型相同的多个任务中的一个任务放入其它队列中的一个队列。
进一步地,第七执行模块包括:第八执行模块,用于如果剩余的所述其它队列中都存在与所述类型相同的多个任务的类型相同的任务,则创建至少一个新的队列,并将每个所述类型相同的任务放入不同的所述新的队列中,直至每个所述类型相同的任务均放入不同的队列。
在本发明实施例中,采用接收一个或多个任务的请求信息,根据请求信息将一个或多个任务放入相应的队列中,根据根据队列中的任务的类型和优先级对队列进行处理,将同一类型的任务放入不同的队列的方式,通过判断任务中是否包含了要进入队列的名称和是否存在与名称对应的队列;两者都存在则判断队列中是否存在类型相同的任务并按照任务优先级进行排序,达到了任务类型相同的任务放入不同队列的目的,从而实现了缩短任务等待时间、提高执行效率的技术效果,进而解决了在同一个队列中同类型任务对相同资源的竞争造成任务执行效率不高的技术问题。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的一种多任务队列中任务的处理方法流程图;
图2是根据本发明实施例的一种可选的多任务队列中任务的处理方法流程图;
图3是根据本发明实施例的一种可选的多任务队列中任务的处理方法流程图;
图4是根据本发明实施例的一种可选的多任务队列中任务的处理方法流程图;
图5是根据本发明实施例的一种可选的多任务队列中任务的处理方法流程图;
图6是根据本发明实施例的一种可选的多任务队列中任务的处理方法流程图;以及
图7是根据本发明实施例的一种可选的多任务队列中任务的处理装置结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
实施例1
根据本发明实施例,提供了一种多任务队列中任务的处理方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
图1是根据本发明实施例的一种多任务队列中任务的处理方法流程图,如图1所示,该方法包括如下步骤:
步骤S102,接收一个或多个任务的请求信息,其中,请求信息至少包括:任务的类型、任务的优先级。
具体地,在上述步骤S102中,上述任务可以为在多线程模式下执行过程中为达到某一目的一系列操作,可以是一个线程,也可以是个进程。例如,可以为不同线程向同一个文件进行读取写入操作;上述请求信息可以为执行任务过程中对资源的请求信息,该请求信息中包括任务的类型、任务的优先级、请求任务序列号;任务包括:要放入队列的名称以及任务内容;请求任务序列号与服务器中的任务序列号同步更新。
一种可选的实施例中,在多线程模式下,多个线程从队列中取出任务并执行任务,例如:任务1是读取数据文件test.txt,任务2是写入数据文件test.txt,任务3是修改数据文件test.txt,线程A执行读取数据文件test.txt,线程B执行写入数据文件test.txt,线程C执行修改数据文件test.txt,其中,任务1包含:要放入队列的名称为队列a,任务内容为读取数据文件test.txt,任务2包含:要放入队列的名称为队列b,任务内容为写入数据文件test.txt,任务3包含:没有要放入队列的名称,任务内容为修改数据文件test.txt。
步骤S104,根据请求信息将一个或多个任务放入相应的队列中。
具体地,在上述步骤S104中,根据请求信息中的请求任务序列号找到对应的任务,将一个或多个任务放入到名称对应的队列、默认队列或是创建的队列中。
一种可选的实施例中,请求信息中的请求任务序列号为任务1、任务2和任务3,从服务器中找到任务1、任务2和任务3,任务1要放入队列的名称为队列a,判断是否存在与放入队列的名称相对应的队列a,若存在,则任务1进入队列a中;任务2要放入队列的名称为队列b的队列,若判断不存在与进入队列的名称相对应的队列b,则创建队列b,任务2进入队列b中,任务3没有要放入队列的名称,则任务3进入默认队列中。
步骤S106,根据根据队列中的任务的类型和优先级对队列进行处理,将同一类型的任务放入不同的队列中。
具体地,在上述步骤S106中,对队列中的已经存在的任务进行刷新,将同一类型的任务放入不同的队列中;其中,任务的类型包括:同步数据、更新报表;任务的优先级按照任务重要等级从大到小的顺序进行评定。
一种可选的实施例中,对队列a,b和默认队列中已经存在的任务刷新处理,请求信息中任务1的优先级为3、任务1的类型是同步数据;任务2的优先级为2,任务2的类型是同步数据;任务3的优先级为4,任务3的类型是更新报表;判断队列a中是否有任务类型为同步数据的任务,如果没有则将任务1放入队列a中并按照任务的优先级进行任务排序,如果队列a中存在任务类型为同步数据的任务,则判断队列b中是否存在任务类型为同步数据的任务,如果不存在则将任务1放入队列b中并按照任务的优先级进行任务排序,队列b若存在任务类型为同步数据的任务,则判断默认队列是否有任务类型为同步数据的任务,如果默认队列中没有任务类型为同步数据的任务,则将任务1放入默认队列中并按照任务的优先级进行任务排序;如果默认队列中有任务类型为同步数据的任务,则新建一个队列;任务2和任务3使用相同的队列算法,将同一类型的任务放入不同的队列中。
本发明上述步骤S102至步骤S106所公开的方案中,在本发明实施例中,接收一个或多个任务的请求信息,根据请求信息将一个或多个任务放入相应的队列中,根据队列中任务的类型和优先级对队列进行处理,将同一类型的任务放入不同的队列中;因此,判断任务中是否包含了要进入队列的名称和是否存在与名称对应的队列;两者都存在则判断队列中是否存在类型相同的任务并按照任务优先级进行排序,因此本方案达到了任务类型相同的任务放入不同队列的目的,从而达到了缩短任务等待时间、提高执行效率的技术效果,进而解决了由于同一类型的任务在相同队列造成的资源竞争,任务成功率低的技术问题。
在一种可选的实施例中,如图2所示,根据请求信息将一个或多个任务放入相应的队列中,可以通过如下步骤来实现:
步骤S202:根据请求信息中的请求任务序列号找到对应的任务,判断任务中是否包含了要进入队列的名称;
步骤S204:如果任务中包含了要进入队列的名称,则将任务放入与名称对应的队列中;
步骤S206:如果任务中没有包含要进入的队列的名称,则将任务放入默认队列中。
具体地,在上述步骤S202至步骤S206公开的方案中,默认队列是预设的队列;
此处需要说明的是,若任务1要放入队列的名称为队列a,且判断存在与放入队列的名称相对应的队列a,则任务1进入队列a中;任务3没有要放入队列的名称,则任务3进入默认队列中。
通过上述实施例步骤S202至步骤S206,实现了将已经有要放入队列的名称的任务放入对应的队列,而将没有要放入队列的名称的任务放入默认队列中。
在一种可选的实施例中,如图3所示,如果请求信息中包含了任务要进入的队列的名称,则将任务放入与名称对应的队列中,可以通过如下步骤来实现:
步骤S302:判断是否存在与名称对应的队列;
步骤S304:如果存在与名称对应的队列,则将任务放入与名称对应的队列中;
步骤S306:如果不存在与名称对应的队列,则创建新的队列,并将任务放入新的队列中。
此处需要说明的是,若任务2要放入队列的名称为队列b,且判断不存在与进入队列名称相对应的队列b,则创建新的队列b,将任务2放入新的队列b中。
通过上述实施例步骤S302至步骤S306,实现了将有要放入队列的名称的任务放入到存在的队列中,而没有存在的队列则需要新建后将任务放入到新的队列中去。
一种可选的实施例中,新的队列命名为任务的请求信息中包含的队列的名称。
具体地,上述队列b的名称为数据同步。
在一种可选的实施例中,如图4所示,根据队列中任务的类型和任务的优先级,对队列进行处理,将同一类型的任务放入不同的队列中,可以通过如下步骤来实现:
步骤S402:判断队列中是否存在类型相同的任务;
步骤S404:如果队列中不存在类型相同的任务,则按照队列中全部任务的优先级对队列中的任务进行排序;
步骤S406:如果队列中存在类型相同的任务,则将类型相同的多个任务放入不同的多个队列中。
具体地,判断队列a中是否有类型为同步数据的任务,如果没有则将任务1放入队列a中并按照任务的优先级进行任务排序;如果队列a中存在类型为同步数据的任务,则判断队列b中是否存在类型为同步数据的任务。
通过上述实施例步骤S402至步骤S406实现了将同种类型的任务放入到不同的队列中并将调整后的队列按照任务的优先级重新排序。
在一种可选的实施例中,如图5所示,将类型相同的多个任务放入不同的多个队列中,可以通过如下步骤来实现:
步骤S502:判断除类型相同的多个任务所在的队列以外的其它队列中是否存在与类型相同的多个任务的类型相同的任务;
步骤S504:如果不存在,则将类型相同的多个任务中的一个任务放入其它队列中的一个队列。
具体地,判断队列b中是否存在类型为同步数据的任务,如果不存在则将任务1放入队列b中并按照任务的优先级进行任务排序,如果队列b存在类型为同步数据的任务,则判断默认队列是否有类型为同步数据的任务,如果默认队列中没有类型为同步数据的任务,则将任务1放入默认队列中并按照任务的优先级进行任务排序;
通过上述实施例步骤S502至步骤S504,实现了将同种类型的任务放入到不同的队列中并将调整后的队列按照任务的优先级重新排序。
一种可选的实施例中,如果剩余的其它队列中都存在与类型相同的多个任务的类型相同的任务,则创建至少一个新的队列,并将每个类型相同的任务放入不同的新的队列中,直至每个类型相同的任务均放入不同的队列。
具体地,如果其它队列中都存在类型为同步数据的任务,则新建一个队列c,并将同步数据类型的任务放入到队列c中。
作为一种优选的实施方式,下面结合图6来说明本申请上述实施例,如图6所示,包括如下步骤:
步骤S602:接收一个或多个待放入队列的任务;
步骤S604:判断待放入队列的任务是否有指定队列名称;如果待放入队列的任务有指定队列名称,则执行步骤S606。
步骤S604b:如果待放入队列的任务没有指定队列名称,则设置指定队列为默认队列,并把待放入队列的任务放入默认队列中并执行步骤S608;
步骤S606:判断指定队列是否存在;
步骤S606a:如果指定队列存在,则把待放入队列的任务放入指定队列中并执行步骤S608;
步骤S606b:如果指定队列不存在,则按照已经存在的队列名称创建新的队列并执行步骤S608;
步骤S608:将队列中的任务根据任务的类型和任务的优先级进行散列重新排序,如果队列中存在相同任务类型的任务,则还原队列至初始状态;
步骤S610:重新将待放入的任务放入到下一个队列中。
通过上述步骤S602至步骤S610实现了相同任务类型的任务放入到不同的队列中,避免同一个队列中相同任务类型的任务对资源的竞争,提高了执行效率的效果。
具体的,上述队列接口设计如下:
此处需要说明的是,队列的接口下有队列名称,待放入队列的任务的入队方法Queue()、引用参数为放入队列的任务的个数;批量待放入队列的任务的入队方法Queue()、引用参数为批量放入队列的任务的个数;任务的出队方法QueueItem Unqueue()、任务批量出队方法QueueItem[]Unqueue()、引用参数为任出队的个数;队列优先级排列方法Prior()、引用参数为任务的类型和任务的优先级;排序队列的方法Discrete()、引用参数为QueueItem[]items。
实施例2
根据本发明实施例,还提供了一种多任务队列中任务的处理装置实施例。本发明实施例1中的多任务队列中任务的处理方法可以在本发明实施例2的处理装置中执行。
图7是根据本发明实施例的一种多任务队列中任务的处理装置的结构示意图,该装置包括:接收模块201,第一处理模块203,第二处理模块205。
其中,接收模块201,用于接收一个或多个任务的请求信息;第一处理模块203,用于根据请求信息将一个或多个任务放入相应的队列中;第二处理模块205,用于根据队列中任务的类型和优先级对队列进行处理,将同一类型的任务放入不同的队列中。
在上述接收模块201中,任务可以为在多线程模式下执行过程中为达到某一目的的一系列操作,可以是一个线程,也可以是个进程。例如,可以为不同线程向同一个文件进行读取写入操作;上述请求信息可以为执行任务过程中对资源的请求信息,该请求信息中包括任务的类型、任务的优先级、请求任务序列号;任务包括:要放入队列的名称以及任务内容;请求任务序列号与服务器中的任务序列号同步更新。
此处需要说明的是,上述接收模块201对应于实施例1中步骤S102。在多线程模式下,多个线程从队列中取出任务并执行任务,例如:任务1是读取数据文件test.txt,任务2是写入数据文件test.txt,任务3是修改数据文件test.txt,线程A执行读取数据文件test.txt,线程B执行写入数据文件test.txt,线程C执行修改数据文件test.txt,其中,任务1包含:要放入队列的名称为队列a,任务内容为读取数据文件test.txt,任务2包含:要放入队列的名称为队列b,任务内容为写入数据文件test.txt,任务3包含:没有要放入队列的名称,任务内容为修改数据文件test.txt。
在上述第一处理模块203中,根据请求信息中的请求任务序列号找到对应的任务,将一个或多个任务放入到队列名称对应的队列、默认队列或是创建的队列中。
此处需要说明的是,上述第一处理模块203对应于实施例1中步骤S104,请求信息中的请求任务序列号为任务1、任务2和任务3,从服务器中找到任务1、任务2和任务3,任务1要放入队列名称为队列a,判断存在与放入队列名称相对应的队列a,则任务1进入队列a中;任务2要放入队列名称为队列b,判断不存在与进入队列名称相对应的队列b,则创建队列b,任务2进入队列b中,任务3没有要放入队列的名称,则任务3进入默认队列中。
在上述第二处理模块205中,对队列中的已经存在的任务进行刷新,将同一类型的任务放入不同的队列中;其中,任务的类型包括:同步数据、更新报表;任务的优先级按照任务重要等级从大到小的顺序进行评定。
此处需要说明的是,上述第一处理模块203对应于实施例1中步骤S106。对队列a,b和默认队列中已经存在的任务进行刷新,请求信息中任务1的优先级为3、任务1的类型是同步数据;任务2的优先级为2,任务2的类型是同步数据;任务3的优先级为4,任务3的类型是更新报表;判断队列a中是否有任务类型为同步数据的任务,如果没有则将任务1放入队列a中并按照任务的优先级进行任务排序,如果队列a中存在任务类型为同步数据的任务,则判断队列b中是否存在任务类型为同步数据的任务,如果不存在则将任务1放入队列b中并按照任务的优先级进行任务排序,队列b存在任务类型为同步数据的任务,则判断默认队列是否有任务类型为同步数据的任务,如果默认队列中没有任务类型为同步数据的任务则将任务1放入默认队列中并按照任务的优先级进行任务排序;如果默认队列中有任务类型为同步数据的任务,则新建一个队列;任务2和任务3使用相同的队列算法,将同一类型的任务放入不同的队列中。
可选的,上述第一处理模块203还包括:第一判断模块,用于判断请求信息中是否包含了任务要进入的队列的名称;第一执行模块,用于如果请求信息中包含了任务要进入的队列的名称,则将任务放入与名称对应的队列中;第二执行模块,用于如果请求信息中没有包含任务要进入的队列的名称,则将任务放入默认队列中。
可选的,上述第一执行模块还包括:第二判断模块,用于判断是否存在与名称对应的队列;第三执行模块,用于如果存在与名称对应的队列,则将任务放入与名称对应的队列中;第四执行模块,用于如果不存在与名称对应的队列,则创建新的队列,并将任务放入新的队列中。
可选的,上述第四执行模块还包括:创建模块,用于将新的队列命名为任务的请求信息中包含的队列的名称。
可选的,上述第二处理模块205还包括:第三判断模块,用于判断队列中是否存在类型相同的任务;第五执行模块,用于如果队列中不存在类型相同的任务,则按照队列中的全部任务的优先级对队列中的任务进行排序;第六执行模块,用于如果队列中存在类型相同的任务,则将类型相同的多个任务放入不同的多个队列中。
可选的,上述第六执行模块还包括:第四判断模块,用于判断除类型相同的多个任务所在的队列以外的其它队列中是否存在与类型相同的多个任务的类型相同的任务;第七执行模块,用于如果队列中不存在与类型相同的任务,则将则将类型相同的多个任务中的一个任务放入其它队列中的一个队列。
可选的,上述第七执行模块还包括:第八执行模块,用于如果剩余的其它队列中都存在与类型相同的多个任务的类型相同的任务,则创建至少一个新的队列,并将每个类型相同的任务放入不同的新的队列中,直至每个类型相同的任务均放入不同的队列中。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (10)
1.一种多任务队列中任务的处理方法,其特征在于,包括:
接收一个或多个任务的请求信息,其中,所述请求信息至少包括:所述任务的类型、所述任务的优先级;
根据所述请求信息将所述一个或多个任务放入相应的队列中;
根据所述队列中的任务的类型和优先级对所述队列进行处理,将同一类型的任务放入不同的队列中。
2.根据权利要求1所述的方法,其特征在于,根据所述请求信息将所述一个或多个任务放入相应的队列中,包括:
判断所述请求信息中是否包含了所述任务要进入的队列的名称;
如果所述请求信息中包含了所述任务要进入的队列的名称,则将所述任务放入与所述名称对应的队列中;
如果所述请求信息中没有包含所述任务要进入的队列的名称,则将所述任务放入默认队列中。
3.根据权利要求2所述的方法,其特征在于,如果所述请求信息中包含了所述任务要进入的队列的名称,则将所述任务放入与所述名称对应的队列中,包括:
判断是否存在与所述名称对应的队列;
如果存在与所述名称对应的队列,则将所述任务放入与所述名称对应的队列中;
如果不存在与所述名称对应的队列,则创建新的队列,并将所述任务放入所述新的队列中。
4.根据权利要求3所述的方法,其特征在于,在创建新的队列,并将所述任务放入所述新的队列中之后,所述方法还包括:将所述新的队列命名为所述任务的请求信息中包含的队列的名称。
5.根据权利要求1至4中任意一项所述的方法,其特征在于,根据所述队列中的任务的类型和优先级对所述队列进行处理,将同一类型的任务放入不同的队列中,包括:
判断所述队列中是否存在类型相同的任务;
如果所述队列中不存在类型相同的任务,则按照所述队列中的全部任务的优先级对所述队列中的任务进行排序;
如果所述队列中存在类型相同的任务,则将类型相同的多个任务放入不同的多个队列中。
6.根据权利要求5所述的方法,其特征在于,将类型相同的多个任务放入不同的多个队列中,包括:
判断除所述类型相同的多个任务所在的队列以外的其它队列中是否存在与所述类型相同的多个任务的类型相同的任务;
如果不存在,则将所述类型相同的多个任务中的一个任务放入所述其它队列中的一个队列。
7.根据权利要求6所述的方法,其特征在于,如果剩余的所述其它队列中都存在与所述类型相同的多个任务的类型相同的任务,则创建至少一个新的队列,并将每个所述类型相同的任务放入不同的所述新的队列中,直至每个所述类型相同的任务均放入不同的队列。
8.一种多任务队列中任务的处理装置,其特征在于,包括:
接收模块,用于接收一个或多个任务的请求信息,其中,所述请求信息至少包括:所述任务的类型、所述任务的优先级;
第一处理模块,用于根据所述请求信息将所述一个或多个任务放入相应的队列中;
第二处理模块,根据所述队列中的任务的类型和优先级对所述队列进行处理,将同一类型的任务放入不同的队列中。
9.根据权利要求8所述的装置,其特征在于,所述第一处理模块包括:
第一判断模块,用于判断所述请求信息中是否包含了所述任务要进入的队列的名称;
第一执行模块,用于如果所述请求信息中包含了所述任务要进入的队列的名称,则将所述任务放入与所述名称对应的队列中;
第二执行模块,用于如果所述请求信息中没有包含所述任务要进入的队列的名称,则将所述任务放入默认队列中。
10.根据权利要求9所述的装置,其特征在于,所述第一执行子模块包括:
第二判断模块,用于判断是否存在与所述名称对应的队列;
第三执行模块,用于如果存在与所述名称对应的队列,则将所述任务放入与所述名称对应的队列中;
第四执行模块,用于如果不存在与所述名称对应的队列,则创建新的队列,并将所述任务放入所述新的队列中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611155748.4A CN108228240B (zh) | 2016-12-14 | 2016-12-14 | 多任务队列中任务的处理方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611155748.4A CN108228240B (zh) | 2016-12-14 | 2016-12-14 | 多任务队列中任务的处理方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108228240A true CN108228240A (zh) | 2018-06-29 |
CN108228240B CN108228240B (zh) | 2021-02-26 |
Family
ID=62650118
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611155748.4A Active CN108228240B (zh) | 2016-12-14 | 2016-12-14 | 多任务队列中任务的处理方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108228240B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108985629A (zh) * | 2018-07-17 | 2018-12-11 | 阿里巴巴集团控股有限公司 | 业务链中业务节点的执行方法、装置及服务器 |
CN114968514A (zh) * | 2022-04-25 | 2022-08-30 | 北京航天控制仪器研究所 | 一种基于轮转机制的惯性平台系统任务调度方法 |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
AU6094494A (en) * | 1993-03-03 | 1994-09-26 | Siemens Rolm Communications Inc. | Queue managing system and method |
US20100153957A1 (en) * | 2008-12-16 | 2010-06-17 | Sensormatic Electronics Corporation | System and method for managing thread use in a thread pool |
CN101807159A (zh) * | 2010-03-18 | 2010-08-18 | 西北工业大学 | 一种自适应任务调度方法 |
US8185897B2 (en) * | 2008-09-30 | 2012-05-22 | Verizon Patent And Licensing Inc. | Task management system |
CN102567086A (zh) * | 2010-12-30 | 2012-07-11 | 中国移动通信集团公司 | 一种任务调度的方法、设备和系统 |
US20140137128A1 (en) * | 2012-11-12 | 2014-05-15 | Skymedi Corporation | Method of Scheduling Tasks for Memories and Memory System Thereof |
CN104407921A (zh) * | 2014-12-25 | 2015-03-11 | 浪潮电子信息产业股份有限公司 | 一种基于时间的yarn任务资源动态调度方法 |
CN104657214A (zh) * | 2015-03-13 | 2015-05-27 | 华存数据信息技术有限公司 | 一种基于多队列和多优先级的大数据任务管理系统和方法 |
CN104731651A (zh) * | 2013-12-20 | 2015-06-24 | 南京南瑞继保电气有限公司 | 电力自动化任务调度及触发机制的方法、系统和处理器 |
CN105204933A (zh) * | 2015-09-18 | 2015-12-30 | 上海斐讯数据通信技术有限公司 | 基于单进程的多任务切换执行方法、系统及处理器 |
CN105893126A (zh) * | 2016-03-29 | 2016-08-24 | 华为技术有限公司 | 一种任务调度方法及装置 |
CN106020954A (zh) * | 2016-05-13 | 2016-10-12 | 深圳市永兴元科技有限公司 | 线程管理方法及装置 |
-
2016
- 2016-12-14 CN CN201611155748.4A patent/CN108228240B/zh active Active
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
AU6094494A (en) * | 1993-03-03 | 1994-09-26 | Siemens Rolm Communications Inc. | Queue managing system and method |
US8185897B2 (en) * | 2008-09-30 | 2012-05-22 | Verizon Patent And Licensing Inc. | Task management system |
US20100153957A1 (en) * | 2008-12-16 | 2010-06-17 | Sensormatic Electronics Corporation | System and method for managing thread use in a thread pool |
CN101807159A (zh) * | 2010-03-18 | 2010-08-18 | 西北工业大学 | 一种自适应任务调度方法 |
CN102567086A (zh) * | 2010-12-30 | 2012-07-11 | 中国移动通信集团公司 | 一种任务调度的方法、设备和系统 |
US20140137128A1 (en) * | 2012-11-12 | 2014-05-15 | Skymedi Corporation | Method of Scheduling Tasks for Memories and Memory System Thereof |
CN104731651A (zh) * | 2013-12-20 | 2015-06-24 | 南京南瑞继保电气有限公司 | 电力自动化任务调度及触发机制的方法、系统和处理器 |
CN104407921A (zh) * | 2014-12-25 | 2015-03-11 | 浪潮电子信息产业股份有限公司 | 一种基于时间的yarn任务资源动态调度方法 |
CN104657214A (zh) * | 2015-03-13 | 2015-05-27 | 华存数据信息技术有限公司 | 一种基于多队列和多优先级的大数据任务管理系统和方法 |
CN105204933A (zh) * | 2015-09-18 | 2015-12-30 | 上海斐讯数据通信技术有限公司 | 基于单进程的多任务切换执行方法、系统及处理器 |
CN105893126A (zh) * | 2016-03-29 | 2016-08-24 | 华为技术有限公司 | 一种任务调度方法及装置 |
CN106020954A (zh) * | 2016-05-13 | 2016-10-12 | 深圳市永兴元科技有限公司 | 线程管理方法及装置 |
Non-Patent Citations (1)
Title |
---|
郑焕鑫: "基于多机多卡的卷积神经网络性能优化", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108985629A (zh) * | 2018-07-17 | 2018-12-11 | 阿里巴巴集团控股有限公司 | 业务链中业务节点的执行方法、装置及服务器 |
CN108985629B (zh) * | 2018-07-17 | 2022-04-08 | 创新先进技术有限公司 | 业务链中业务节点的执行方法、装置及服务器 |
CN114968514A (zh) * | 2022-04-25 | 2022-08-30 | 北京航天控制仪器研究所 | 一种基于轮转机制的惯性平台系统任务调度方法 |
CN114968514B (zh) * | 2022-04-25 | 2024-08-30 | 北京航天控制仪器研究所 | 一种基于轮转机制的惯性平台系统任务调度方法 |
Also Published As
Publication number | Publication date |
---|---|
CN108228240B (zh) | 2021-02-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109274754A (zh) | 用于在区块链网络中同步数据的方法、设备和存储介质 | |
CN103761148B (zh) | 集群定时调度任务的控制方法 | |
CN105701159B (zh) | 一种数据同步装置和方法 | |
CN106033373A (zh) | 一种云计算平台中虚拟机资源调度方法和调度系统 | |
CN114048265A (zh) | 任务处理方法、装置、电子设备和计算机可读存储介质 | |
CN107092521A (zh) | 一种分布式任务调度方法、装置及系统 | |
CN109062681A (zh) | 一种周期性循环任务的执行方法、系统、装置及存储介质 | |
CN106354795A (zh) | 一种分布式数据交换系统 | |
CN105847560A (zh) | 一种移动终端锁屏消息推送方法及装置 | |
CN103595654B (zh) | 基于多核CPU的HQoS实现方法、装置及网络设备 | |
CN113672369A (zh) | 用于验证有向无环图的环的方法及装置、电子设备、存储介质 | |
CN108228240A (zh) | 多任务队列中任务的处理方法和装置 | |
CN107423942A (zh) | 一种业务流转的方法及装置 | |
CN106358065A (zh) | 一种多媒体信息处理方法和系统 | |
CN105553732B (zh) | 一种分布式网络模拟方法及系统 | |
CN106598726A (zh) | 一种多任务管理系统及其分布式部署方法 | |
CN108898482B (zh) | 多产品的签约方法及装置 | |
CN107368569A (zh) | 数据差异对比方法和装置、存储介质以及处理器 | |
CN107122675B (zh) | 一种基于区块链的数据库事务操作方法和系统 | |
CN117992223B (zh) | 模型训练方法、装置、电子设备及存储介质 | |
CN107203420A (zh) | 任务调度实例的主从切换方法和装置 | |
US10007547B2 (en) | Specifying an invocation order of a plurality of resources in a transaction according to resource distance | |
CN102123079B (zh) | 一种事务报文处理方法和装置 | |
CN107045452A (zh) | 虚拟机调度方法和装置 | |
CN106528141A (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 | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: 100083 No. 401, 4th Floor, Haitai Building, 229 North Fourth Ring Road, Haidian District, Beijing Applicant after: Beijing Guoshuang Technology Co.,Ltd. Address before: 100086 Cuigong Hotel, 76 Zhichun Road, Shuangyushu District, Haidian District, Beijing Applicant before: Beijing Guoshuang Technology Co.,Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |