【技术实现步骤摘要】
一种处理声明式事件的队列的实现方法
本专利技术涉及云平台事件处理
,具体是指一种处理声明式事件的队列的实现方法。
技术介绍
目前一个云平台要实现资源的当前状态向期望状态转移的现有流程如下所示:步骤一、查询获取指定资源的当前状态,放入待处理队列;步骤二、从队列中获取待处理事件,对比当前状态与期望状态之间的差距;步骤三、根据差距处理资源的变更;步骤四、如果处理成功则结束对该资源的处理;步骤五、如果处理失败则继续根据状态差距继续进行处理。对于上述现有流程存在如下技术问题:1.如果队列中已经存在了一个资源的状态变更事件,当前一个事件没有处理完,又收到另一个相同资源的事件时,会重复处理它们,特别的,当云平台负载较大时,会导致很多计算资源都重复浪费掉;2.云平台中获取队列的组件与处理队列中资源变更的组件通常是异步进行的,当处理速率不一致时,会导致从队列中取的速度很快,但是处理资源变更的组件进行得很慢,从而使系统堆积大量阻塞的线程,其又会进一步导致系统处理速度降低;3.当从队列中获取了一个资源 ...
【技术保护点】
1.一种处理声明式事件的队列的实现方法,其特征在于,包括如下步骤:/nS1、创建一个队列,当事件加入队列前先经过去重器进行检查,去重器只允许未存在的事件加入队列中;/nS2、队列中以堆为数据结构,将多个事件按照优先级顺序排列;/nS3、通过限速器控制处理器从队列中获取事件的间隔时间和数量;/nS4、处理器对事件进行状态迁移处理,若处理成功,则清除去重器中对于该事件的引用并进行下一事件状态迁移处理,若处理失败,则处理器处理失败的事件经过退避器记录失败次数、降低优先级和延迟处理时间后重新加入去重器。/n
【技术特征摘要】
1.一种处理声明式事件的队列的实现方法,其特征在于,包括如下步骤:
S1、创建一个队列,当事件加入队列前先经过去重器进行检查,去重器只允许未存在的事件加入队列中;
S2、队列中以堆为数据结构,将多个事件按照优先级顺序排列;
S3、通过限速器控制处理器从队列中获取事件的间隔时间和数量;
S4、处理器对事件进行状态迁移处理,若处理成功,则清除去重器中对于该事件的引用并进行下一事件状态迁移处理,若处理失败,则处理器处理失败的事件经过退避器记录失败次数、降低优先级和延迟处理时间后重新加入去重器。
2.根据权利要求1所述的一种处理声明式事件的队列的实现方法,其特征在于:所述步骤S1中,事件经过去重器前利用生成函数对事件生成一个唯一key标识,去重器对该唯一key标识进行检查,若去重器中未记录该唯一key标识,则事件正常加入队列,并且在去重器中记录该唯一key标识,若去重器记录了该唯一key标识,则将该带有唯一key标识的新事件覆盖原相同唯一key标识的旧事件。
...
【专利技术属性】
技术研发人员:晏东,吴晓勇,安露明,范青松,
申请(专利权)人:成都精灵云科技有限公司,
类型:发明
国别省市:四川;51
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。