一种任务队列处理方法和装置制造方法及图纸

技术编号:19023159 阅读:21 留言:0更新日期:2018-09-26 19:00
本发明专利技术公开了一种任务队列处理方法和装置。该方法包括:设置缓存决策树,为所述缓存决策树中的每个节点对应设置标签,并为节点中的叶子节点对应设置原子队列;根据任务的标签信息,在所述缓存决策树中逐级查询到叶子节点,在所述叶子节点对应的原子队列执行任务存取。本发明专利技术是一种支持高并发任务的队列设计方法,根据任务的标签,将任务通过决策树逐级分片缓存,使得任务的入队和出队分布在不同队列,使得高并发控制被逐级分担,有效地提高了并发的强度。

【技术实现步骤摘要】
一种任务队列处理方法和装置
本专利技术涉及云计算
,特别是涉及一种任务队列处理方法和装置。
技术介绍
队列在数据结构中是一种线性表,从一端插入数据,然后从另一端删除数据。在实际业务处理过程中,很多请求任务都不必实时反馈结果,只需保证最终的一致性,为了保证数据处理的有序性,常会考虑使用队列来解决这类问题。目前,在使用任务队列时,将需要与主线程同步执行的任务先缓存到队列中,然后执行异步处理,在处理成功后,再异步通知用户处理结果。但是,在执行任务时,如果有海量任务并发被缓存到队列中等待线程执行,任务的入队和出队集中在某一个方向,常会出现高并发慢等问题,造成系统响应慢,甚至是系统瘫痪。
技术实现思路
本专利技术要解决的技术问题是提供一种任务队列处理方法和装置,用以解决现有技术在执行任务时,任务的入队和出队集中在某一个方向,容易出现高并发慢的问题。为了解决上述技术问题,本专利技术是通过以下技术方案来解决的:本专利技术提供一种任务队列处理方法,包括:设置缓存决策树,为所述缓存决策树中的每个节点对应设置标签,并为节点中的叶子节点对应设置原子队列;根据任务的标签信息,在所述缓存决策树中逐级查询到叶子节点,在所述叶子节点对应的原子队列执行任务存取。其中,设置缓存决策树,为所述缓存决策树中的每个节点对应设置标签,并为节点中的叶子节点对应设置原子队列,包括:将缓存设置为多级缓存分片,形成缓存决策树;其中,每个上级缓存分片包含多个下级缓存分片;为每个作为节点的缓存分片对应设置标签;为每个作为叶子节点的缓存分片对应设置原子队列。其中,根据任务的标签信息,在所述缓存决策树中逐级查询到叶子节点,在所述叶子节点对应的原子队列执行任务存取,包括:接收任务的入队请求;解析出所述任务的标签信息;根据所述任务的标签信息,在所述缓存决策树中进行逐级查询和缓存,直到将所述任务缓存到叶子节点对应的原子队列中。其中,根据任务的标签信息,在所述缓存决策树中逐级查询到叶子节点,在所述叶子节点对应的原子队列执行任务存取,包括:接收任务的出队请求;获取所述出队请求中的标签信息;根据所述标签信息,在所述缓存决策树中逐级查询到叶子节点;将所述叶子节点对应的原子队列中的任务,按照查询路径逐级向上返回。其中,所述方法还包括:在缓存任务时,在当前查询到标签对应的缓存分片之后,对所述缓存分片的下级缓存分片进行加锁操作;在获取任务时,在当前查询到标签对应的缓存分片之后,对所述缓存分片的上级缓存分片进行加锁操作。本专利技术提供一种任务队列处理装置,包括:设置模块,用于设置缓存决策树,为所述缓存决策树中的每个节点对应设置标签,并为节点中的叶子节点对应设置原子队列;执行模块,用于根据任务的标签信息,在所述缓存决策树中逐级查询到叶子节点,在所述叶子节点对应的原子队列执行任务存取。其中,所述设置模块,用于:将缓存设置为多级缓存分片,形成缓存决策树;其中,每个上级缓存分片包含多个下级缓存分片;为每个作为节点的缓存分片对应设置标签;为每个作为叶子节点的缓存分片对应设置原子队列。其中,所述执行模块,用于:接收任务的入队请求;解析出所述任务的标签信息;根据所述任务的标签信息,在所述缓存决策树中进行逐级查询和缓存,直到将所述任务缓存到叶子节点对应的原子队列中。其中,所述执行模块,用于:接收任务的出队请求;获取所述出队请求中的标签信息;根据所述标签信息,在所述缓存决策树中逐级查询到叶子节点;将所述叶子节点对应的原子队列中的任务,按照查询路径逐级向上返回。其中,所述执行模块还用于:在缓存任务时,在当前查询到标签对应的缓存分片之后,对所述缓存分片的下级缓存分片进行加锁操作;在获取任务时,在当前查询到标签对应的缓存分片之后,对所述缓存分片的上级缓存分片进行加锁操作。本专利技术有益效果如下:本专利技术是一种支持高并发任务的队列设计方法,根据任务的标签,将任务通过决策树逐级分片缓存,使得任务的入队和出队分布在不同队列,使得高并发控制被逐级分担,有效地提高了并发的强度。附图说明图1是根据本专利技术第一实施例的任务队列处理方法的流程图;图2是根据本专利技术第二实施例的任务队列处理方法的流程图;图3是根据本专利技术第二实施例的任务队列处理方法的示意图;图4是根据本专利技术第三实施例的任务队列处理装置的结构图。具体实施方式以下结合附图以及实施例,对本专利技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本专利技术,并不限定本专利技术。实施例一本实施例提供一种任务队列处理方法。图1是根据本专利技术第一实施例的任务队列处理方法的流程图。步骤S110,设置缓存决策树,为所述缓存决策树中的每个节点对应设置标签,并为节点中的叶子节点对应设置原子队列。将缓存设置为多级缓存分片,形成缓存决策树;其中,每个上级缓存分片包含多个下级缓存分片;为每个作为节点的缓存分片对应设置标签;为每个作为叶子节点的缓存分片对应设置原子队列。任务最终会被存放在最底层的原子队列中。步骤S120,根据任务的标签信息,在所述缓存决策树中逐级查询到叶子节点,在所述叶子节点对应的原子队列执行任务存取。接收任务的入队请求;解析出所述任务的标签信息;根据所述任务的标签信息,在所述缓存决策树中进行逐级查询和缓存,直到将所述任务缓存到叶子节点对应的原子队列中。接收任务的出队请求;获取所述出队请求中的标签信息;根据所述标签信息,在所述缓存决策树中逐级查询到叶子节点;将所述叶子节点对应的原子队列中的任务,按照查询路径逐级向上返回。在缓存任务时,在当前查询到标签对应的缓存分片之后,对所述缓存分片的下级缓存分片进行加锁操作;在获取任务时,在当前查询到标签对应的缓存分片之后,对所述缓存分片的上级缓存分片进行加锁操作。进一步地,在查询到标签对应的缓存分片之后,先对之前加锁的缓存分片进行解锁操作,再对之后需要查询的缓存分片进行加锁操作。本实施例提供了一种支持高并发的任务队列设计方法。通过基于标签定义的决策树对接收到的多个客户端发送过来的高并发任务快速分配到对应的原子队列中,并采用局部加锁的方式实现了任务队列的并发读写。本实施例通过对任务逐级分片存储,使得并发强度被逐级分担,极大提高了整体队列的并发访问能力。实施例二为了使本专利技术更加便于理解,本实施例提供一种较为具体的任务队列处理方法。本领域技术人员应当知道的是,本实施例仅用于说明本专利技术,而不用于限定本专利技术。针对海量任务缓存到队列时出现的高并发问题,可以参考本专利技术实施例,基于任务标签对缓存进行逐级分片,将任务快速分配到原子队列中。如图2所示,为根据本专利技术第二实施例的任务队列处理方法的流程图。步骤S210,预先定义任务的三级标签。在本实施例中,定义任务的三级标签分别是:地域、部门和应用。地域为一级标签,部门为二级标签,应用为三级标签。其中,地域标签表示任务归属于哪个地域;部门标签表示任务属于哪个业务或技术部门;应用标签表示任务最终会被哪个应用程序所执行。步骤S220,将缓存设置为三级缓存分片,为每个缓存分片对应设置标签。在设置等级时,缓存分片的级别数量和任务的标签级别数量相同。每级缓存分片中会有多个子分片,直到最终对应到原子队列为止。在本实施例中,将缓存设置为三个级别,使整个队列结构对应有三级缓存,按照为每级缓存设置的标签分类,三级缓存依次是地域缓存、部门本文档来自技高网...

【技术保护点】
1.一种任务队列处理方法,其特征在于,包括:设置缓存决策树,为所述缓存决策树中的每个节点对应设置标签,并为节点中的叶子节点对应设置原子队列;根据任务的标签信息,在所述缓存决策树中逐级查询到叶子节点,在所述叶子节点对应的原子队列执行任务存取。

【技术特征摘要】
1.一种任务队列处理方法,其特征在于,包括:设置缓存决策树,为所述缓存决策树中的每个节点对应设置标签,并为节点中的叶子节点对应设置原子队列;根据任务的标签信息,在所述缓存决策树中逐级查询到叶子节点,在所述叶子节点对应的原子队列执行任务存取。2.如权利要求1所述的方法,其特征在于,设置缓存决策树,为所述缓存决策树中的每个节点对应设置标签,并为节点中的叶子节点对应设置原子队列,包括:将缓存设置为多级缓存分片,形成缓存决策树;其中,每个上级缓存分片包含多个下级缓存分片;为每个作为节点的缓存分片对应设置标签;为每个作为叶子节点的缓存分片对应设置原子队列。3.如权利要求2所述的方法,其特征在于,根据任务的标签信息,在所述缓存决策树中逐级查询到叶子节点,在所述叶子节点对应的原子队列执行任务存取,包括:接收任务的入队请求;解析出所述任务的标签信息;根据所述任务的标签信息,在所述缓存决策树中进行逐级查询和缓存,直到将所述任务缓存到叶子节点对应的原子队列中。4.如权利要求2所述的方法,其特征在于,根据任务的标签信息,在所述缓存决策树中逐级查询到叶子节点,在所述叶子节点对应的原子队列执行任务存取,包括:接收任务的出队请求;获取所述出队请求中的标签信息;根据所述标签信息,在所述缓存决策树中逐级查询到叶子节点;将所述叶子节点对应的原子队列中的任务,按照查询路径逐级向上返回。5.如权利要求2-4中任一项所述的方法,其特征在于,所述方法还包括:在缓存任务时,在当前查询到标签对应的缓存分片之后,对所述缓存分片的下级缓存...

【专利技术属性】
技术研发人员:李正民朱春鸽张鸿刘欣然李小标黄道超孙发强
申请(专利权)人:国家计算机网络与信息安全管理中心天津市国瑞数码安全系统股份有限公司
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1