一种基于消息队列多优先级渲染资源的调度方法及系统技术方案

技术编号:13741282 阅读:72 留言:0更新日期:2016-09-22 22:35
本发明专利技术涉及一种基于消息队列多优先级渲染资源的调度方法,包括:A、将任务队列按照类型不同进行分组列队;B、将任务数据存储到数据库中并生成任务ID根据任务的先后由小到大递增;C、渲染agent主动连接各个任务队列并从任务队列头里拉取渲染任务数据进行渲染;D、判断任务列队中是否有任务排队;E、渲染完成后渲染agent根据配置向相应任务队列拉取任务进行渲染并执行步骤D;F、查询其他任务队列并判断是否有任务排队;G、渲染agent根据配置向相应任务队列拉取任务进行渲染并执行步骤D。多优先级的队列调度策略,不仅能够优先地时处理紧急的任务,而且也不会持续地剥夺次级任务渲染资源,更加灵活更加平滑。

【技术实现步骤摘要】

本专利技术属于消息并发技术改进领域,尤其涉及一种基于消息队列多优先级渲染资源的调度方法及系统
技术介绍
为了提高渲染速度和并发渲染量,性能再高的单台渲染服务器也有瓶颈:如果支持多并发渲染,那势必会提高每个渲染任务的耗时。这时由几十,甚至几百台渲染服务器组成的渲染集群,就能在保持高渲染速度的情况下,提高并发渲染量,支持多的用户同时渲染。为最大限度地发挥每台渲染服务器的资源和提高满足用户多变的需求,一个高效灵活的渲染资源调度方案至关重要。渲染集群的一般工作流程都是:有一个调度者从任务队列或任务池里取任务数据,当有空闲的渲染服务器时,就把任务分配到相应的渲染资源。调度者需要维护很多当前渲染集群的信息:每台渲染服务器的忙闲情况和每个渲染任务的渲染状态。并且需要处理各种异常情况:怎么判断渲染服务器异常,渲染服务器异常时怎么处理,渲染任务失败时怎么重新下发至另外的服务器渲染,增加和下线渲染服务器时怎么处理,重启某台渲染服务器时怎么处理。任务队列单一,不能灵活处理多优先级的渲染任务。优先的任务往往直接插入队列头部,这样较为简单粗暴,如果优先的任务较多,会导致次级的任务永远得不到渲染资源。两个长耗时的渲染任务在同一台机器同时渲染,竞争计算资源,导致两个长耗时的渲染任务需要更长的时间完成渲染。增加和下线和重启渲染服务器复杂度。
技术实现思路
本专利技术的目的在于提供一种基于消息队列多优先级渲染资源的调度方法,旨在解决上述的技术问题。本专利技术是这样实现的,一种基于消息队列多优先级渲染资源的调度方法,所述调度方法包括以下步骤:A、将任务队列按照类型不同进行分组列队;B、将任务数据存储到数据库中并生成任务ID根据任务的先后由小到大递增;C、渲染agent主动连接各个任务队列并从任务队列头里拉取渲染任务数据进行渲染;D、判断任务列队中是否有任务排队,如是有任务排队,则拉取任务进行渲染并执行步骤E;如否没有任务排队,在预设时间内无任务排队则执行步骤F;E、渲染完成后渲染agent根据配置向相应任务队列拉取任务进行渲染并执行步骤D;F、查询其他任务队列并判断是否有任务排队,如是有任务排队,则拉取任务进行渲染,渲染完成后没有任务排队则执行步骤G;如否没有任务排队,则渲染agent根据配置向相应任务队列拉取任务进行渲染并执行步骤C;G、渲染agent根据配置向相应任务队列拉取任务进行渲染并执行步骤D。本专利技术的进一步技术方案是:所述步骤A中还包括以下步骤:A1、根据任务类型的渲染量的不同将服务器的渲染任务设置成相应的类型。本专利技术的进一步技术方案是:所述步骤A中还包括以下步骤:A2、在设置服务器渲染任务中耗时长的两个渲染agent设置在不同服务器上。本专利技术的进一步技术方案是:在渲染过程中任务状态包括排队中、渲染中、渲染完成及渲染失败四种状态。本专利技术的进一步技术方案是:在配置渲染任务中渲染agent配置渲染耗时超过限制时间的渲染任务。本专利技术的另一目的在于提供一种基于消息队列多优先级渲染资源的调度系统,所述调度系统包括:分类列队模块,用于将任务队列按照类型不同进行分组列队;数据存储排序模块,用于将任务数据存储到数据库中并生成任务ID根据任务的先后由小到大递增;拉取任务模块,用于渲染agent主动连接各个任务队列并从任务队列头里拉取渲染任务数据进行渲染;任务排队判断模块,用于判断任务列队中是否有任务排队,如是有任务排队,则拉取任务进行渲染并执行渲染完成拉取模块;如否没有任务排队,在预设时间内无任务排队则执行查询判断模块;渲染完成拉取模块,用于渲染完成后渲染agent根据配置向相应任务队列拉取任务进行渲染并执行任务排队判断模块;查询判断模块,用于查询其他任务队列并判断是否有任务排队,如是有任务排队,则拉取任务进行渲染,渲染完成后没有任务排队则执行渲染任务模块;如否没有任务排队,则渲染agent根据配置向相应任务队列拉取任务进行渲染并执行拉取任务模块;执行渲染任务模块,用于渲染agent根据配置向相应任务队列拉取任务进行渲染并任务排队判断模块。本专利技术的进一步技术方案是:所述分类列队模块中还包括:服务器设置单元,用于根据任务类型的渲染量的不同将服务器的渲染任务设置成相应的类型。本专利技术的进一步技术方案是:所述分类列队模块中还包括:耗时任务设置单元,用于在设置服务器渲染任务中耗时长的两个渲染agent设置在不同服务器上。本专利技术的进一步技术方案是:在渲染过程中任务状态包括排队中、渲染中、渲染完成及渲染失败四种状态。本专利技术的进一步技术方案是:在配置渲染任务中渲染agent配置渲染耗时超过限制时间的渲染任务。本专利技术的有益效果是:多优先级的队列调度策略,不仅能够优先地时处理紧急的任务,而且也不会持续地剥夺次级任务渲染资源,更加灵活更加平滑;多任务队列的资源调度策略:有效避免两个长耗时的渲染任务在同一台机器同时渲染,竞争计算资源,导致两个长耗时的渲染任务需要更长的时间完成渲染;渲染集群扩展方便,只需要热插拔式地管理渲染服务器,即可平滑地扩展渲染能力,无需要更改任务配置或影响系统正常服务。附图说明图1是本专利技术实施例提供的基于消息队列多优先级渲染资源的调度方法的流程图。图2是本专利技术实施例提供的基于消息队列多优先级渲染资源的调度系统的结构框图。具体实施方式图1示出了本专利技术提供的基于消息队列多优先级渲染资源的调度方法的流程图,其详述如下:步骤S1, 将任务队列按照类型不同进行分组列队;以任务队列分两种为例:任务队列A,任务队列B。任务队列开以实现开源组件redis,rabbitmq。任务队列的数据管理是先进先出,不同的任务队列存储不同类型任务,这里仅示例两种任务队列A和B,A类型的任务投放到任务队列A,B类型的任务放到任务队列B,当有更多的的任务类型时只需扩展更多的任务队列即可。根据任务类型的渲染量的不同将服务器的渲染任务设置成相应的类型。不同的类型的任务,其渲染量会不同,因此支持相应类型的渲染任务的服务器数量也会不同。渲染Agent可以支持配置优先渲染某一种类型的任务,当该种类型的任务队列(如任务队列A)为空,并持续一段时间(可配置)后,便可拉取其它任务队列(如任务队列B)的任务进行渲染,渲染完毕后再查看继续原任务队列(如任务队列A)是否有任务排队。若原任务队列(如任务队列A)有任务排队,则拉取渲染;若原任务队列(如任务队列A)为空,则持续一段时间(可配置)后,便可拉取其它任务队列(如任务队列B)的任务进行渲染,如此循环下去。在设置服务器渲染任务中耗时长的两个渲染agent设置在不同服务器上。5)不同的类型的任务,其渲染耗时也不同。若同一台机器两个渲染agent,同时在渲染耗时的任务,会导致两个渲染agent长时间地竞争计算机资源,最终的结果是两个渲染任务都会需要更长的时间才能完成。所以为了避免资源的长时间竞争,两个都耗时较长的渲染任务不应该集中在一台机器的两个渲染agent上同时渲染。渲染agent可以配置是否支持渲染耗时超过限制时间的渲染任务(根据渲染图片的大小和类型综合评估其耗时,“限制时间”可以由用户根据经验自由配置)。不支持超限耗时的渲染任务的逻辑实现是:先快速查看队列头的渲染任务是否需要耗时超限,若耗时超限则放弃,经过一断睡眠时间再去查看列头的渲染任务是本文档来自技高网...

【技术保护点】
一种基于消息队列多优先级渲染资源的调度方法,其特征在于,所述调度方法包括以下步骤:A、将任务队列按照类型不同进行分组列队;B、将任务数据存储到数据库中并生成任务ID根据任务的先后由小到大递增;C、渲染agent主动连接各个任务队列并从任务队列头里拉取渲染任务数据进行渲染;D、判断任务列队中是否有任务排队,如是有任务排队,则拉取任务进行渲染并执行步骤E;如否没有任务排队,在预设时间内无任务排队则执行步骤F;E、渲染完成后渲染agent根据配置向相应任务队列拉取任务进行渲染并执行步骤D;F、查询其他任务队列并判断是否有任务排队,如是有任务排队,则拉取任务进行渲染,渲染完成后没有任务排队则执行步骤G;如否没有任务排队,则渲染agent根据配置向相应任务队列拉取任务进行渲染并执行步骤C;G、渲染agent根据配置向相应任务队列拉取任务进行渲染并执行步骤D。

【技术特征摘要】
1.一种基于消息队列多优先级渲染资源的调度方法,其特征在于,所述调度方法包括以下步骤:A、将任务队列按照类型不同进行分组列队;B、将任务数据存储到数据库中并生成任务ID根据任务的先后由小到大递增;C、渲染agent主动连接各个任务队列并从任务队列头里拉取渲染任务数据进行渲染;D、判断任务列队中是否有任务排队,如是有任务排队,则拉取任务进行渲染并执行步骤E;如否没有任务排队,在预设时间内无任务排队则执行步骤F;E、渲染完成后渲染agent根据配置向相应任务队列拉取任务进行渲染并执行步骤D;F、查询其他任务队列并判断是否有任务排队,如是有任务排队,则拉取任务进行渲染,渲染完成后没有任务排队则执行步骤G;如否没有任务排队,则渲染agent根据配置向相应任务队列拉取任务进行渲染并执行步骤C;G、渲染agent根据配置向相应任务队列拉取任务进行渲染并执行步骤D。2.根据权利要求1所述的调度方法,其特征在于,所述步骤A中还包括以下步骤:A1、根据任务类型的渲染量的不同将服务器的渲染任务设置成相应的类型。3.根据权利要求2所述的调度方法,其特征在于,所述步骤A中还包括以下步骤:A2、在设置服务器渲染任务中耗时长的两个渲染agent设置在不同服务器上。4.根据权利要求3所述的调度方法,其特征在于,在渲染过程中任务状态包括排队中、渲染中、渲染完成及渲染失败四种状态。5.根据权利要求4所述的调度方法,其特征在于,在配置渲染任务中渲染agent配置渲染耗时超过限制时间的渲染任务。6.一种基于消息队列多优先级渲染资源的调度系统,其特征在于,所述调度系统包括:分类列队模...

【专利技术属性】
技术研发人员:颜强华黄富兴胡鹏
申请(专利权)人:深圳市彬讯科技有限公司
类型:发明
国别省市:广东;44

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

1