【技术实现步骤摘要】
一种异步状态变更通知方法、系统及装置
[0001]本专利技术涉及状态变更通知领域,特别是涉及一种异步状态变更通知方法、系统及装置。
技术介绍
[0002]在软件系统中,当某种数据状态变更后,需要采取特定的动作来应对这种状态变更,通常情况下采取的是添加状态变更的订阅,即状态变更时,立即调用通知回调函数来通知订阅者。但是,在某些场景下,可能会发生状态抖动情况,即某种状态在很短时间内发生多次变更,而每次变更时都会通知订阅者,尤其当某种状态对应多个实例时,这种状态抖动就会被成倍的放大,造成频繁的通知回调,频繁进行通知回调不仅造成资源浪费,且严重影响系统的运行效率。
[0003]因此,如何提供一种解决上述技术问题的方案是本领域的技术人员目前需要解决的问题。
技术实现思路
[0004]本专利技术的目的是提供一种异步状态变更通知方法、系统及装置,从因状态抖动触发一异步通知事件到此异步通知事件处理完成期间,状态抖动仅会产生一个异步通知事件,从而避免了频繁通知回调带来的资源浪费及系统运行效率低下等问题。
[00 ...
【技术保护点】
【技术特征摘要】
1.一种异步状态变更通知方法,其特征在于,包括:当系统中的目标状态发生变更时,记录本次发生变更的目标状态对应的实例索引;判断当前是否存在未处理完成的异步通知事件;若否,则发送第一异步通知事件至事件处理模块,以使所述事件处理模块基于本次记录的实例索引进行通知回调,并在其通知回调完成后将所述第一异步通知事件标记为已处理完成;若是,则等待未处理完成的异步通知事件完成处理,不触发新的异步通知事件。2.如权利要求1所述的异步状态变更通知方法,其特征在于,所述异步状态变更通知方法还包括:在发送第一异步通知事件至事件处理模块后,将所述第一异步通知事件存储至预留事件存储空间;在将所述第一异步通知事件标记为已处理完成后,删除所述预留事件存储空间中的所述第一异步通知事件;相应的,判断当前是否存在未处理完成的异步通知事件的过程,包括:判断所述预留事件存储空间是否为空;若是,则确定当前不存在未处理完成的异步通知事件;若否,则确定当前存在未处理完成的异步通知事件。3.如权利要求1所述的异步状态变更通知方法,其特征在于,所述异步状态变更通知方法还包括:在系统中的目标状态发生变更后,根据预设状态稳定判定策略判断所述目标状态是否已状态稳定;若是,则发送第二异步通知事件至事件处理模块,以使所述事件处理模块基于所述目标状态稳定前最后一次记录的实例索引进行通知回调,并在通知回调完成后将所述第二异步通知事件标记为已处理完成。4.如权利要求3所述的异步状态变更通知方法,其特征在于,根据预设状态稳定判定策略判断所述目标状态是否已状态稳定的过程,包括:从所述目标状态发生变更时开始,每隔预设检测周期均检测所述目标状态,直至持续检测时间到达预设检测时间;判断在所述预设检测时间内,所述目标状态是否一直未再次发生变更;若是,则确定所述目标状态已状态稳定。5.如权利要求1所述的异步状态变更通知方法,其特征在于,所述异步状态变更通知方法还包括:获取订阅者当前感兴趣的系统状态;在判断出当前不存在未处理完成的异步通知事件之后,在发送第一异步通知事件至事件处理模块之前,判断本次发生变更的目标状态是否为所述订阅者当前感兴趣的系统状态;若是,则执行发送第一异步通知事件至事件处理模块的步骤;若否,则不执行发送第一异步通知事件至事件处理模块的步骤。6.如权利要求1-5任一项所述的异步状态变更通知方法,其特征在于,所述异步状态变
更通知方法还包括:预先按照订阅者对各系统状态的感兴趣程度设置所述事件处理模块处理各系统状态对应的异步通知事件的处理完成时长;其中,越感兴趣的系统状态对应的处理完成时长越短;在发送第一异步通知事件至事件...
【专利技术属性】
技术研发人员:郭强,
申请(专利权)人:苏州浪潮智能科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。