一种基于共享资源的任务的处理方法及装置的制作方法

文档序号:6377476阅读:110来源:国知局
专利名称:一种基于共享资源的任务的处理方法及装置的制作方法
技术领域
本申请涉及共享资源的访问技术领域,特别涉及一种基于共享资源的任务的处理方法及其相应装置。
背景技术
随着信息技术的发展,为满足各种应用需求,需要处理的任务数量急剧膨胀,处理这些任务的过程中使用的资源种类和数量也越来越多。但是,在一定时期内,处理各种任务的资源总量相对有限。为保证任务顺利处理,资源通常需要共享,即多个任务共同使用一个资源或几个资源以完成任务的处理。在资源共享情况下,必须存在协调机制来协调各种任务对资源的占用,避免资源访问过程中出现冲突,从而确保任务的正确执行和处理。对于共享资源的待处理任务,现有技术在处理过程中常采用的一种协调机制是互·斥锁机制。通过该机制多个需要资源的任务首先获得资源对应的互斥锁,然后独占地使用资源,获得互斥锁的任务利用资源执行完毕后,解除互斥锁,以便其他任务争抢互斥锁执行自身的任务。这种互斥锁机制虽然保证了基于共享资源的任务的“和谐”。但是,随着待处理的任务涉及的资源类型和数量的增加,由于不同类型的资源维护有各自的互斥锁,处理该类型的任务则需要多个互斥锁,从而对互斥锁的操作变得相当复杂,极其容易导致“死锁”。由此可见,现有处理基于共享资源的任务采用的锁机制降低了系统的任务吞吐量,影响了任务的执行效率。

发明内容
为解决上述技术问题,本申请实施例提供了一种基于共享资源的任务的处理方法及其相应装置,以提闻基于共孚资源的任务的执行效率。本申请实施例提供的基于共享资源的任务的处理方法包括接收待处理任务;根据待处理任务需要的资源的标识将待处理任务放入多级分类组合队列组中相应资源节点的任务队列,所述多级分类组合队列组的任务队列与根据资源上下级关系确定的资源节点树的资源节点具有对应关系;判断多级分类组合队列组的各资源节点对应的任务队列内是否存在满足预设条件的待处理任务,如果存在,则取出满足预设条件的待处理任务进行处理。优选地,判断多级分类组合队列组的各资源节点对应的任务队列内是否存在满足预设条件的待处理任务具体包括判断多级分类组合队列组中与第一个级别的资源节点对应的任务队列内是否存在满足预设条件的待处理任务,如果存在,则取出满足预设条件的待处理任务进行处理;如果不存在,则判断与第一个级别的下一级别的资源节点对应的任务队列内是否存在满足预设条件的待处理任务,如果是,则取出满足预设条件的待处理任务进行处理。进一步优选地,所述方法还包括建立用于反映资源节点对应的任务队列内各任务执行情况的标记,则判断多级分类组合队列组的各资源节点对应的任务队列内是否存在满足预设条件的待处理任务具体包括读取资源节点对应的任务队列内的任务的标记信息;根据读取的标记信息判断资源节点对应的任务队列内是否存在满足预设条件的待处理任务;在满足预设条件的待处理任务处理完成后修改其对应的标记信息。进一步优选地,所述标记包括当前任务处理完成标记、当前资源节点的子节点的当前任务处理完成标记、资源让出标记和/或立即处理标记。优选地,在接收待处理任务后,将接收的待处理任务放入候选任务队列,按照预设规则读取候选任务队列中的待处理任务;则所述根据待处理任务需要的资源的标识将待处理任务放入多级分类组合队列组中对应资源节点的任务队列具体为根据从候选任务中读取的待处理任务需要的资源的标识将该待处理任务放入多 级分类组合队列组中相应资源节点的任务队列。优选地,所述取出满足预设条件的待处理任务进行处理具体包括从线程池中取出空闲线程;利用该空闲线程执行取出的待处理任务。本申请实施例还提供了一种基于共享资源的任务的处理装置。该装置包括接收单元、第一放入单元、判断单元和处理单元,其中所述接收单元,用于接收待处理任务;所述第一放入单元,用于根据待处理任务需要的资源的标识将待处理任务放入多级分类组合队列组中相应资源节点的任务队列,所述多级分类组合队列组的任务队列与根据资源上下级关系确定的资源节点树的资源节点具有对应关系;所述判断单元,用于判断多级分类组合队列组的各资源节点对应的任务队列内是否存在满足预设条件的待处理任务,如果存在,则触发处理单元;所述处理单元,用于取出满足预设条件的待处理任务进行处理。优选地,所述判断单元包括第一判断子单元和第二判断子单元,其中所述第一判断子单元,用于判断多级分类组合队列组中与第一个级别的资源节点对应的任务队列内是否存在满足预设条件的待处理任务,如果存在,则触发处理单元;如果不存在,则触发第二判断子单元;所述第二判断子单元,用于判断与第一个级别的下一级别的资源节点对应的任务队列内是否存在满足预设条件的待处理任务,如果是,则触发处理单元。进一步优选地,所述装置还包括标记单元和更新单元,其中所述标记单元,用于标记资源节点对应的任务队列内各任务执行情况,所述更新单元,用于在满足预设条件的待处理任务处理完成后更新标记信息,则所述判断单元还包括读取子单元,用于读取资源节点对应的任务队列内的任务的标记信息,所述第一判断子单元和/或第二判断子单元,用于根据读取的标记信息判断资源节点对应的任务队列内是否存在满足预设条件的待处理任务。优选地,所述装置还包括第二放入单元,用于在接收待处理任务后,将接收的待处理任务根据时间戳放入候选任务队列;则所述第一放入单元,用于从候选任务队列中按照预设规则读取候选任务队列中的待处理任务,根据从候选任务队列中读取的待处理任务需要的资源的标识将该待处理任务放入多级分类组合队列组中相应资源节点的任务队列。本申请实施例将接收的待处理任务根据其需要的资源的标识放入多级分类组合队列中对应资源节点的任务队列之中,然后判断各资源节点对应的任务队列内是否存在满足预设条件的待处理任务,如果存在,则取出满足预设条件的待处理任务进行处理。与现有技术相比,由于本申请实施例的多级分类组合队列组包含与资源节点树对应的任务队列,该资源节点树按照资源上下级关系确定了任务队列的层级和制约关系,从而在处理待处理任务时不用采取互斥锁机制,只要判断出任务队列中具有可处理的待处理任务,即可取出该任务进行处理。本申请实施例抛弃了传统的互斥锁机制,避免了互斥锁机制带来的一系列问题,提高了基于共享资源的任务的处理效率,提高了系统的任务吞吐量。


为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本 申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图I为本申请实施例一的基于共享资源的任务的处理方法流程图;图2为本申请实施例二的基于共享资源的任务的处理方法流程图;图3为图2所述实施例的多级分类组合队列组示意图;图4为图2所述实施例的资源节点对应的标记示意图;图5为本申请实施例三的基于共享资源的任务的处理装置的结构框图。
具体实施例方式为了使本技术领域的人员更好地理解本申请中的技术方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。实施例一参见图1,该图示出了基于共享资源的任务的处理方法的流程图。该实施例包括步骤SlOl :接收待处理任务;待处理任务是需要利用计算机系统提供的各种类型的资源执行相应操作的任务,该任务可以表现为多种具体形式,比如计算任务、安装软件程序的任务、数据写入存储器的任务、配置网络的任务等等。由于资源总量相对于任务总量相对匮乏,因此,多个待处理任务需要共享(共用)一个或多个资源。也就是说,单个任务可能需要调用多个资源完成任务处理,多个任务也可能均需调用相同的资源完成任务处理。本实施例的待处理任务为基于共享资源的任务,该任务可能需要一个资源,也可能需要多个资源。本实施例一次性接收的待处理任务可以是一个,也可以是多个。步骤S102 :根据待处理任务需要的资源的标识将待处理任务放入多级分类组合队列组中相应资源节点的任务队列,所述多级分类组合队列组内的任务队列与根据资源上下级关系确定的资源节点树的资源节点具有对应关系;为满足各种应用需要,产生出一个待处理任务产生后,即需要调用相关的资源来完成该任务。本实施例根据处理一个任务需要的资源的资源标识将该任务放入多级分类组合队列组中与该资源标识相应的资源节点的对应任务队列,以便后续步骤进行处理。这里的“资源的标识”可以体现为资源ID,也可以体现为其他具有区分不同资源的标识。值得说明的是资源ID在资源树的不同级别上,其指向的具体资源形态可能存在差异,比如,当资源(节点)树既包含位于上层的抽象资源,也包括位于底(下)层的实体资源时,所述资源ID可能为上层的一个资源类别(在该资源类别下还包括多个更下一级别的资源子类别或具体资源),也可能为下层的一个实体资源。举例而言,假设根据资源上下级关系确定的资源树为根资源节点为“数据中心”,该根资源节点的下一级别资源节点为“资源池”,“资源池”资源节点之下为“服务器”,在该资源树中,如果待处理任务根据其需要的资源ID确定的资源节点为“数据中心”,则该资源节点实际上为一个资源类别,其下包含了多个“资源池”资源,如果待处理任务根据其需要的资源ID确定的资源节点为“服务器”,则该资源节点即为一个具体实体资源。
这里的“多级分类组合队列组”包括多个任务队列,每个任务队列与一个按照资源上下级关系确定的资源节点树上的资源节点对应,也就是说,多级分类组合队列组中的任务队列与资源节点树上的资源节点存在映射关系,从而使得多级分类组合队列组内的任务队列也具有了 “资源上下级关系”,任务队列内各待处理的任务具有了层级关系和制约关系。在实际应用过程中,多级分类组合队列组中的最高任务队列对应资源节点树上的根资源节点,该任务队列内的任务可以独占系统资源,也可以和下级资源并发执行,在独占资源时,子节点上的任务将等待执行。步骤S103 :判断多级分类组合队列组的各资源节点对应的任务队列内是否存在满足预设条件的待处理任务,如果存在,则执行步骤S104。将待处理任务按照资源标识放入对应的任务队列后,可以判断多级分类组合队列组各资源节点对应的任务队列中是否存在满足预设条件的待处理任务。“预设条件”可以根据不同的应用需要进行不同设置比如,当需要考虑待处理任务进入任务队列时间先后时,可以将任务队列中时间戳最早的任务作为满足预设条件的待处理任务;还比如,当需要考虑待处理任务的优先级级时,可以将任务队列中优先级最高的任务作为满足预设条件的待处理任务,还比如,当需要考虑待处理任务与其父任务之间的关系时,可以将没有任何父任务的任务,或者包含父任务但该父任务已经执行完毕的任务作为满足预设条件的任务。通过判断确定了满足条件的任务后,即可转入任务处理步骤进行该任务的处理。需要说明的是当每次接收的待处理任务为一个时,本步骤可以在前述S102步骤执行一次后执行;当每次接收的待处理任务为多个时,本步骤可以在前述S102步骤每执行完一次后即执行,也可以在前述S102步骤将多个待处理任务均放入多级分类组合队列后才执行。步骤S104 :取出满足预设条件的待处理任务进行处理;从多级分类组合队列组的任务队列中选出需要立即执行的待处理任务后,即可进行任务的处理。在实际应用过程中,可以将处理线程集中在线程池,当确定出需要执行的任务后,从线程池中取出一个空闲线程,利用该空闲线程执行任务,如果线程池内当前不存在空闲的线程,则等待出现空闲线程后处理该任务。这里的处理线程是可执行的应用程序。本实施例将接收的待处理任务根据其需要的资源的标识放入多级分类组合队列中对应资源节点的任务队列之中,然后判断各资源节点对应的任务队列内是否存在满足预设条件的待处理任务,如果存在,则取出满足条件的待处理任务进行处理。与现有技术相t匕,由于本申请实施例的多级分类组合队列组的各任务队列与按照资源上下级关系构建的资源节点树具有对应关系,使任务队列具有了如同资源节点树一样的层级和制约关系,从而在处理待处理任务时不用采取互斥锁机制,只要判断出任务队列中具有满足预设条件的待处理任务,即可取出该任务进行处理。本实施例抛弃了传统的互斥锁机制,避免了互斥锁机制带来的一系列问题,提高了基于共享资源的任务的处理效率,提高了系统的任务吞吐量。实施例二前述实施例提到在多级分类组合队列组中查找满足预设条件的待处理任务,尽管本申请实施例无需限定查找多级分类组合队列组的方式和预设条件,也可实现本申请的发 明目的。但是,选取恰当的巡检多级分类组合队列组内任务队列的任务的方式,以及设定合适的预设条件,将大为提高待处理任务的处理效率,提高系统的任务吞吐率。本实施例采取依照资源节点树的层级关系进行满足预设条件的任务的查找,且预设条件设定为以标志位的方式进行判断。为更为清楚地说明本实施例的技术方案,下面先对本实施例的多级分类组合队列的数据结构和标记位的设置进行介绍,然后再结合流程图详细说明本实施例的技术特征。参见图3,该图示出了本实施例的多级分类组合队列组的结构。图中entity_id为资源节点的指针,该指针对应资源节点树上的一个资源节点Object, —个资源节点Object对应一个任务队列。为了加快在多级分类组合队列中查找到待处理任务需要的资源对应的资源节点,可通过HASH表实现上述指针结构。当接收到一个待处理任务后,根据待处理任务需要的资源的资源标识在多级分类组合队列中查找entity_id对应的资源节点Object,该资源节点Object对应的任务队列即是待处理任务应当放入的任务队列。参见图4,该图示了本实施例的资源节点对应的标记。图中列出了多个标记位当前任务处理完成标记位,用于标识资源节点对应的任务队列中前一个待处理任务是否处理完成;优先级平衡因子标记位,用于标记资源节点的优先级权值,该值在任务处理时参与计算,生成任务处理优先级;立即执行标记位,用于标记任务队列中的某任务可不需要或等待其父节点任务处理完成,一般而言,当待处理任务需求的资源非共享资源或者其不和父节点资源冲突时,待处理任务可并发执行,从而提高系统的任务执行并发度;当前资源节点的子节点的当前任务处理完成标记,用于标记待处理任务所在的当前资源节点的子节点的当前任务是否处理完成,该标志位主要适用于在父节点执行某些任务时需要子节点释放一些资源,达到互斥访问目的;资源让出标记位,用于标识父资源节点的任务执行需要使用本节点的资源,本节点让出资源供父资源节点使用。需要说明几点的是根据实际应用需要,还可以设置更多的标志位,用于标记某方面的情况,以方便判断任务队列中是否存在满足预设条件的待处理任务;在设置标志位的情况下,“预设条件”可以设置为标志位位的值为“真”(可用I表示真,O表示假),如果通过判断标志位的值为“假”,则认为不满足预设条件;在设置标志位的情况下,满足预设条件的待处理任务处理完毕后,需要更新标志位的标记信息,以满足信息的准确性;前述多个标志位可组合为一个标记字段,也可以各自独立地以“位”为单位发挥标记作用;前述标志位可以一个任务队列对应一个标记字段,也可以为任务队列中的每个任务配置一个标记字段。下面结合附图介绍本实施例的技术方案。参见图2,该图示出了本申请实施例二的基于共享资源的任务的处理方法的流程。该流程包括步骤S201 :接收待处理任务;步骤S202 :根据待处理任务需要的资源的标识将待处理任务放入多级分类组合队列组中对应资源节点的任务队列,所述多级分类组合队列组内的任务队列与根据资源上下级关系建立的资源节点树的资源节点具有对应关系;步骤S203 :读取资源节点对应的任务队列的待处理任务的标记信息;
步骤S204 :判断多级分类组合队列组中与第一个级别的资源节点对应的任务队列的待处理任务的标记信息是否满足预设条件,如果是,则执行步骤S206 ;如果否,则执行步骤S205 ;此处的预设条件可以设置为当前任务处理完成标记位为“真”、资源让出标记位为“假”和/或当前资源节点的子节点的当前任务处理完成标记位为“真”,如果满足这些标记位满足上述预设的条件,则认为这些标记位对应的待处理任务是需要立即处理的待处理任务。同样地,预设条件还可以存在其他多种设置方式,比如,设定当前任务完成标记位为“真”且立即处理标记位也为“真”。步骤S205 :判断与第一个级别的下一级别的资源节点对应的任务队列的待处理任务的标记信息是否满足预设条件,如果是,则执行步骤S206 ;如果否,则返回步骤S204 ;步骤S206 :取出标志信息满足预设条件的待处理任务进行处理;步骤S207 :在标志信息满足预设条件的待处理任务处理完成后更新标记信息。本实施例对多级分类组合队列中任务队列的待处理任务采用从资源节点的上一级节点向下一级节点的逐级巡查方式,充分利用了资源节点树为任务队列建立的层级和制约关系,方便了查找多级分类组合队列中是否存在满足预设条件的待处理任务,进而更进一步提高了待处理任务的处理效率。而且,本实施例通过判断标志位的标记信息来判断是否满足预设条件,简化了判断过程,也有利于提高找到需要处理的待处理任务的效率。需要说明的是本实施例中的步骤S202、S203、S204、S205在实际应用过程可根据实际情况的需要,执行一次或多次,即对于步骤S202而言,当一次性接收的待处理任务具有多个时,将一个待处理任务放入多级分类组合队列组中的任务队列后,可以不立即执行步骤S203,而是继续执行将待处理任务放入任务队列的操作,直至将接收的待处理任务全部放入到多级分类组合队列组中,然后才执行读取任务队列的标记信息的步骤;对于步骤S203而言,可以仅读取最近放入了待处理任务的任务队列(内的任务)的标记信息,也可以读取包含最近放入了待处理任务的任务队列在内的关联任务队列(比如,该任务队列的上下级任务队列)的标记信息,甚至整个多级分类组合队列组中全部任务队列(内的任务)对应的标记信息;对于步骤S204、S205而言,在判断出某一个级别的任务队列中存在满足预设条件的待处理任务,可以立即执行满足条件的待处理任务,也可以继续判断其他级别的任务队列(比如,该一个级别的下一级别的任务队列),找出多个满足条件的待处理任务后一并执行,而且,优选地,可以自资源节点树的根节点对应的任务队列开始查找满足预设条件的待处理任务,直至资源节点树的最底层节点对应的任务队列,然后将查找出的这些具有层级关系的任务一并执行。还需要说明的是本实施例在将接收到的待处理任务放入多级分类组合队列组之前,还可以设置候选任务队列,用于存放接收的待处理任务,然后按照一定的规则从候选任务队列中读出待处理任务进行放入多级分类队列组中的操作,这种方式适合于接收待处理任务的时间数量级与查找多级分类队列组内相应任务队列的时间数量级相差较大的情形,比如,一次性接收的待处理任务数量较多,而多级分类队列组的结构庞大以致不能及时将这些任务放入任务队列,这种情形下设置一个候选任务队列可以起到缓冲作用,不至于发生任务外溢或丢失,从而平衡“接收”(从本系统外接收待处理任务)与“写入”(向多级分类队列组的任务队列放入接收的待处理任务)速度。此外,设置候选任务队列还可以适用于多级分类队列组的任务队列没有考虑时间先后或优先级别等情形,比如,多级分类队列组的任务队列的标志位仅仅是关于当前资源节点的子节点的当前任务处理完成与否的情况,则可以在候选队列中根据时间戳(或待处理任务的优先级)压入待处理任务,从而按照时间顺序(待处理任务的优先级)取出待处理任务进行放入多级分类队列组的操作,这种情形下设置一个候选任务队列可起到与多级分类队列组配合实现待处理任务的处理的作用。·
实施例三上述叙述内容均是对本申请方法实施例的描述,相应地,本申请实施例还提供了基于共享资源的任务的处理装置。参见图5,该图示出了本申请实施例三的共享资源的任务的处理装置的结构框架。该装置实施例500包括接收单元501、第一放入单元502、判断单元503和处理单元504,其中接收单元501,用于接收待处理任务;第一放入单元502,用于根据待处理任务需要的资源的标识将待处理任务放入多级分类组合队列组中相应资源节点的任务队列,所述多级分类组合队列组内的任务队列与根据资源上下级关系确定的资源节点树的资源节点具有对应关系;判断单元503,用于判断多级分类组合队列组的各资源节点对应的任务队列内是否存在满足预设条件的待处理任务,如果存在,则触发处理单元;处理单元504,用于取出满足预设条件的待处理任务进行处理。本实施例的工作过程是接收单元501在接收待处理任务后,由第一放入单元502根据待处理任务需要的资源的标识将待处理任务放入多级分类组合队列组中对应资源节点的任务队列;然后,判断单元503判断多级分类组合队列组的各资源节点对应的任务队列内是否存在满足预设条件的待处理任务,如果存在,则触发处理单元,由处理单元504取出满足预设条件的待处理任务进行处理。本装置实施例将接收的待处理任务根据其需要的资源的标识放入多级分类组合队列中对应资源节点的任务队列之中,然后判断各资源节点对应的任务队列内是否存在满足预设条件的待处理任务,如果存在,则取出满足条件的待处理任务进行处理。与现有技术相比,由于本装置实施例的多级分类组合队列组的各任务队列与按照资源上下级关系构建的资源节点树具有对应关系,使任务队列具有了如同资源节点树一样的层级和制约关系,从而在处理待处理任务时不用采取互斥锁机制,只要判断出任务队列中具有满足预设条件的待处理任务,即可取出该任务进行处理。本装置实施例抛弃了传统的互斥锁机制,避免了互斥锁机制带来的一系列问题,提高了基于共享资源的任务的处理效率,提高了系统的任
务吞吐量。本装置实施例中的判断单元可以采取多种具体的判断方式判断多级分类组合队列组的任务队列是否具有满足预设条件的待处理任务,不同的判断方式对应不同的组成结构。比如可以随机地选择判断的任务队列,也可以满足一定的规则选择判断的任务队列。本装置实施例优选“由上而下“的逐级查找方式(即深度优先的判断方式),在这种判断方式下,本装置实施例的判断单元可以包括第一判断子单元5031和第二判断子单元5032,第一判断子单元5031用于判断多级分类组合队列组中与第一个级别的资源节点对应的任务队列内是否存在满足预设条件的待处理任务,如果存在,则触发处理单元;如果不存在,则触发第二判断子单元5032 ;第二判断子单元5032,用于判断与第一个级别的下一级别的资源节点对应的任务队列内是否存在可处理任务,如果是,则触发处理单元。本装置实施例在采取前述的判断方式情况下,还可以进一步包括标记单元和更新单元,其中标记单元用于标记资源节点对应的任务队列内各任务执行情况,更新单元用于在可处理任务处理完成后更新标记信息,则所述判断单元还包括读取子单元,用于读取资源节点对应的任务队列内任务的标记信息,所述第一判断子单元和/或第二判断子单元,用于根据读取的标记信息判断资源节点对应的任务队列内是否存在满足预设条件的待处理任务。本装置实施例除以上各种改进外,还可以包括第二放入单元,用于在接收待处理 任务后,将接收的待处理任务放入候选任务队列;则所述第一放入单元,用于从候选任务队列中按照预设规则读取候选任务队列中的待处理任务,根据从候选任务队列中读取的待处理任务需要的资源的标识将该待处理任务放入多级分类组合队列组中对应资源节点的任务队列。这种结构设置至少可以具有两方面的作用一是在接收待处理任务的时间数量级与查找多级分类队列组内相应任务队列的时间数量级相差较大时,起到缓冲作用,不至于发生任务外溢或丢失,从而平衡“接收”(从本系统外接收待处理任务)与“写入”(向多级分类队列组的任务队列放入接收的待处理任务)速度;二是多级分类队列组的任务队列没有考虑时间先后或优先级别等情形时,可起到与多级分类队列组配合实现待处理任务的处理的作用。为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如R0M/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例或者实施例的某些部分所述的方法。本说明书中的各个实施例采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的系统实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。本申请可用于众多通用或专用的计算系统环境或配置中。例如个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、置顶盒、可编程的消费电子设备、网络PC、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。以上所述仅是本申请的具体实施方式
,应当指出,对于本技术领域的普通技术人·员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。
权利要求
1.一种基于共享资源的任务的处理方法,其特征在于,所述方法包括 接收待处理任务; 根据待处理任务需要的资源的标识将待处理任务放入多级分类组合队列组中相应资源节点的任务队列,所述多级分类组合队列组的任务队列与根据资源上下级关系确定的资源节点树的资源节点具有对应关系; 判断多级分类组合队列组的各资源节点对应的任务队列内是否存在满足预设条件的待处理任务,如果存在,则取出满足预设条件的待处理任务进行处理。
2.根据权利要求I所述的方法,其特征在于,所述判断多级分类组合队列组的各资源节点对应的任务队列内是否存在满足预设条件的待处理任务具体包括 判断多级分类组合队列组中与第一个级别的资源节点对应的任务队列内是否存在满足预设条件的待处理任务,如果存在,则取出满足预设条件的待处理任务进行处理;如果不存在,则判断与第一个级别的下一级别的资源节点对应的任务队列内是否存在满足预设条件的待处理任务,如果是,则取出满足预设条件的待处理任务进行处理。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括建立用于反映资源节点对应的任务队列内各任务执行情况的标记,则判断多级分类组合队列组的各资源节点对应的任务队列内是否存在满足预设条件的待处理任务具体包括 读取资源节点对应的任务队列内的任务的标记信息; 根据读取的标记信息判断资源节点对应的任务队列内是否存在满足预设条件的待处理任务;在满足预设条件的待处理任务处理完成后更新标记信息。
4.根据权利要求3所述的方法,其特征在于,所述标记包括当前任务处理完成标记、当前资源节点的子节点的当前任务处理完成标记、资源让出标记和/或立即处理标记。
5.根据权利要求I至4中任何一项所述的方法,其特征在于,在接收待处理任务后,将接收的待处理任务放入候选任务队列,按照预设规则读取候选任务队列中的待处理任务;则所述根据待处理任务需要的资源的标识将待处理任务放入多级分类组合队列组中相应资源节点的任务队列具体为 根据从候选任务队列中读取的待处理任务需要的资源的标识将该待处理任务放入多级分类组合队列组中相应资源节点的任务队列。
6.根据权利要求I至4中任何一项所述的方法,其特征在于,所述取出满足预设条件的待处理任务进行处理具体包括 从线程池中取出空闲线程; 利用该空闲线程执行取出的待处理任务。
7.一种基于共享资源的任务的处理装置,其特征在于,该装置包括接收单元、第一放入单元、判断单元和处理单元,其中 所述接收单元,用于接收待处理任务; 所述第一放入单元,用于根据待处理任务需要的资源的标识将待处理任务放入多级分类组合队列组中相应资源节点的任务队列,所述多级分类组合队列组的任务队列与根据资源上下级关系确定的资源节点树的资源节点具有对应关系; 所述判断单元,用于判断多级分类组合队列组的各资源节点对应的任务队列内是否存在满足预设条件的待处理任务,如果存在,则触发处理单元;所述处理单元,用于取出满足预设条件的待处理任务进行处理。
8.根据权利要求7所述的装置,其特征在于,所述判断单元包括第一判断子单元和第二判断子单元,其中 所述第一判断子单元,用于判断多级分类组合队列组中与第一个级别的资源节点对应的任务队列内是否存在满足预设条件的待处理任务,如果存在,则触发处理单元;如果不存在,则触发第二判断子单元; 所述第二判断子单元,用于判断与第一个级别的下一级别的资源节点对应的任务队列内是否存在满足预设条件的待处理任务,如果是,则触发处理单元。
9.根据权利要求8所述的装置,其特征在于,该装置还包括标记单元和更新单元,其中所述标记单元,用于标记资源节点对应的任务队列内各任务的执行情况,所述更新单元,用于在满足预设条件的待处理任务处理完成后更新标记信息,则所述判断单元还包括读取子单元,用于读取资源节点对应的任务队列内的任务的标记信息,所述第一判断子单元和/或第二判断子单元,用于根据读取的标记信息判断资源节点对应的任务队列内是否存在满足预设条件的待处理任务。
10.根据权利要求7至9中任何一项所述的装置,其特征在于,所述装置还包括第二放入单元,用于在接收待处理任务后,将接收的待处理任务放入候选任务队列;则所述第一放入单元,用于从候选任务队列中按照预设规则读取候选任务队列中的待处理任务,根据从候选任务队列中读取的待处理任务需要的资源的标识将该待处理任务放入多级分类组合队列组中相应资源节点的任务队列。
全文摘要
本申请实施例公开了一种基于共享资源的任务的处理方法。该方法包括接收待处理任务;根据待处理任务需要的资源的标识将待处理任务放入多级分类组合队列组中相应资源节点的任务队列,所述多级分类组合队列组内的任务队列与根据资源上下级关系建立的资源节点树的资源节点具有对应关系;判断多级分类组合队列组的各资源节点对应的任务队列内是否存在满足预设条件的待处理任务,如果存在,则取出满足预设条件的待处理任务进行处理。本申请实施例还提供了一种基于共享资源的任务处理装置。本申请实施例提高了待处理任务的处理效率。
文档编号G06F9/50GK102902573SQ201210353329
公开日2013年1月30日 申请日期2012年9月20日 优先权日2012年9月20日
发明者王帅 申请人:北京搜狐新媒体信息技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1