CN112269720B - 一种异步状态变更通知方法、系统及装置 - Google Patents
一种异步状态变更通知方法、系统及装置 Download PDFInfo
- Publication number
- CN112269720B CN112269720B CN202011096123.1A CN202011096123A CN112269720B CN 112269720 B CN112269720 B CN 112269720B CN 202011096123 A CN202011096123 A CN 202011096123A CN 112269720 B CN112269720 B CN 112269720B
- Authority
- CN
- China
- Prior art keywords
- event
- asynchronous
- notification
- state
- processed
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 230000008859 change Effects 0.000 title claims abstract description 56
- 238000000034 method Methods 0.000 title claims abstract description 46
- 230000001960 triggered effect Effects 0.000 claims abstract description 12
- 238000001514 detection method Methods 0.000 claims description 17
- 230000008569 process Effects 0.000 claims description 8
- 238000004590 computer program Methods 0.000 claims description 6
- 238000011105 stabilization Methods 0.000 claims description 3
- 239000002699 waste material Substances 0.000 abstract description 7
- 230000009471 action Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000006641 stabilisation Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3055—Monitoring arrangements for monitoring the status of the computing system or of the computing system component, e.g. monitoring if the computing system is on, off, available, not available
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/302—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/32—Monitoring with visual or acoustical indication of the functioning of the machine
- G06F11/324—Display of status information
- G06F11/328—Computer systems status display
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/542—Event management; Broadcasting; Multicasting; Notifications
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Quality & Reliability (AREA)
- Software Systems (AREA)
- Multimedia (AREA)
- Computer Hardware Design (AREA)
- Mathematical Physics (AREA)
- Telephone Function (AREA)
Abstract
本发明公开了一种异步状态变更通知方法、系统及装置,当系统中的目标状态发生变更时,记录本次发生变更的目标状态对应的实例索引;判断当前是否存在未处理完成的异步通知事件;若否,则发送第一异步通知事件至事件处理模块,以使事件处理模块基于本次记录的实例索引进行通知回调,并在其通知回调完成后将第一异步通知事件标记为已处理完成;若是,则等待未处理完成的异步通知事件完成处理,不触发新的异步通知事件。可见,本申请从因状态抖动触发一异步通知事件到此异步通知事件处理完成期间,状态抖动仅会产生一个异步通知事件,从而避免了频繁通知回调带来的资源浪费及系统运行效率低下等问题。
Description
技术领域
本发明涉及状态变更通知领域,特别是涉及一种异步状态变更通知方法、系统及装置。
背景技术
在软件系统中,当某种数据状态变更后,需要采取特定的动作来应对这种状态变更,通常情况下采取的是添加状态变更的订阅,即状态变更时,立即调用通知回调函数来通知订阅者。但是,在某些场景下,可能会发生状态抖动情况,即某种状态在很短时间内发生多次变更,而每次变更时都会通知订阅者,尤其当某种状态对应多个实例时,这种状态抖动就会被成倍的放大,造成频繁的通知回调,频繁进行通知回调不仅造成资源浪费,且严重影响系统的运行效率。
因此,如何提供一种解决上述技术问题的方案是本领域的技术人员目前需要解决的问题。
发明内容
本发明的目的是提供一种异步状态变更通知方法、系统及装置,从因状态抖动触发一异步通知事件到此异步通知事件处理完成期间,状态抖动仅会产生一个异步通知事件,从而避免了频繁通知回调带来的资源浪费及系统运行效率低下等问题。
为解决上述技术问题,本发明提供了一种异步状态变更通知方法,包括:
当系统中的目标状态发生变更时,记录本次发生变更的目标状态对应的实例索引;
判断当前是否存在未处理完成的异步通知事件;
若否,则发送第一异步通知事件至事件处理模块,以使所述事件处理模块基于本次记录的实例索引进行通知回调,并在其通知回调完成后将所述第一异步通知事件标记为已处理完成;
若是,则等待未处理完成的异步通知事件完成处理,不触发新的异步通知事件。
优选地,所述异步状态变更通知方法还包括:
在发送第一异步通知事件至事件处理模块后,将所述第一异步通知事件存储至预留事件存储空间;
在将所述第一异步通知事件标记为已处理完成后,删除所述预留事件存储空间中的所述第一异步通知事件;
相应的,判断当前是否存在未处理完成的异步通知事件的过程,包括:
判断所述预留事件存储空间是否为空;
若是,则确定当前不存在未处理完成的异步通知事件;
若否,则确定当前存在未处理完成的异步通知事件。
优选地,所述异步状态变更通知方法还包括:
在系统中的目标状态发生变更后,根据预设状态稳定判定策略判断所述目标状态是否已状态稳定;
若是,则发送第二异步通知事件至事件处理模块,以使所述事件处理模块基于所述目标状态稳定前最后一次记录的实例索引进行通知回调,并在通知回调完成后将所述第二异步通知事件标记为已处理完成。
优选地,根据预设状态稳定判定策略判断所述目标状态是否已状态稳定的过程,包括:
从所述目标状态发生变更时开始,每隔预设检测周期均检测所述目标状态,直至持续检测时间到达预设检测时间;
判断在所述预设检测时间内,所述目标状态是否一直未再次发生变更;
若是,则确定所述目标状态已状态稳定。
优选地,所述异步状态变更通知方法还包括:
获取订阅者当前感兴趣的系统状态;
在判断出当前不存在未处理完成的异步通知事件之后,在发送第一异步通知事件至事件处理模块之前,判断本次发生变更的目标状态是否为所述订阅者当前感兴趣的系统状态;
若是,则执行发送第一异步通知事件至事件处理模块的步骤;
若否,则不执行发送第一异步通知事件至事件处理模块的步骤。
优选地,所述异步状态变更通知方法还包括:
预先按照订阅者对各系统状态的感兴趣程度设置所述事件处理模块处理各系统状态对应的异步通知事件的处理完成时长;其中,越感兴趣的系统状态对应的处理完成时长越短;
在发送第一异步通知事件至事件处理模块时开始计时,得到事件已处理时长;
在所述事件处理模块基于本次记录的实例索引进行通知回调之后,在将所述第一异步通知事件标记为已处理完成之前,判断所述事件已处理时长是否达到所述目标状态对应的处理完成时长;其中,所述目标状态为任一系统状态;
若是,则允许执行将所述第一异步通知事件标记为已处理完成的步骤;
若否,则不允许执行将所述第一异步通知事件标记为已处理完成的步骤。
为解决上述技术问题,本发明还提供了一种异步状态变更通知系统,包括:
实例记录模块,用于当系统中的目标状态发生变更时,记录本次发生变更的目标状态对应的实例索引;
事件判断模块,用于判断当前是否存在未处理完成的异步通知事件;若否,则执行第一通知模块;若是,则执行处理等待模块;
第一通知模块,用于发送第一异步通知事件至事件处理模块,以使所述事件处理模块基于本次记录的实例索引进行通知回调,并在其通知回调完成后将所述第一异步通知事件标记为已处理完成;
处理等待模块,用于等待未处理完成的异步通知事件完成处理,不触发新的异步通知事件。
优选地,所述异步状态变更通知系统还包括:
状态判断模块,用于在系统中的目标状态发生变更后,根据预设状态稳定判定策略判断所述目标状态是否已状态稳定;若是,则执行第二通知模块;
第二通知模块,用于发送第二异步通知事件至事件处理模块,以使所述事件处理模块基于所述目标状态稳定前最后一次记录的实例索引进行通知回调,并在通知回调完成后将所述第二异步通知事件标记为已处理完成。
优选地,所述异步状态变更通知系统还包括:
时长设置模块,用于预先按照订阅者对各系统状态的感兴趣程度设置所述事件处理模块处理各系统状态对应的异步通知事件的处理完成时长;其中,越感兴趣的系统状态对应的处理完成时长越短;
时长获取模块,用于在发送第一异步通知事件至事件处理模块时开始计时,得到事件已处理时长;
时长判断模块,用于在所述事件处理模块基于本次记录的实例索引进行通知回调之后,在将所述第一异步通知事件标记为已处理完成之前,判断所述事件已处理时长是否达到所述目标状态对应的处理完成时长;若是,则允许所述第一通知模块执行将所述第一异步通知事件标记为已处理完成的步骤;若否,则不允许所述第一通知模块执行将所述第一异步通知事件标记为已处理完成的步骤;其中,所述目标状态为任一系统状态。
为解决上述技术问题,本发明还提供了一种异步状态变更通知装置,包括:
存储器,用于存储计算机程序;
处理器,用于在执行所述计算机程序时实现上述任一种异步状态变更通知方法的步骤。
本发明提供了一种异步状态变更通知方法,当系统中的目标状态发生变更时,记录本次发生变更的目标状态对应的实例索引;判断当前是否存在未处理完成的异步通知事件;若否,则发送第一异步通知事件至事件处理模块,以使事件处理模块基于本次记录的实例索引进行通知回调,并在其通知回调完成后将第一异步通知事件标记为已处理完成;若是,则等待未处理完成的异步通知事件完成处理,不触发新的异步通知事件。可见,本申请从因状态抖动触发一异步通知事件到此异步通知事件处理完成期间,状态抖动仅会产生一个异步通知事件,从而避免了频繁通知回调带来的资源浪费及系统运行效率低下等问题。
本发明还提供了一种异步状态变更通知系统及装置,与上述通知方法具有相同的有益效果。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对现有技术和实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种异步状态变更通知方法的流程图;
图2为本发明实施例提供的一种异步状态变更通知系统的结构示意图。
具体实施方式
本发明的核心是提供一种异步状态变更通知方法、系统及装置,从因状态抖动触发一异步通知事件到此异步通知事件处理完成期间,状态抖动仅会产生一个异步通知事件,从而避免了频繁通知回调带来的资源浪费及系统运行效率低下等问题。
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参照图1,图1为本发明实施例提供的一种异步状态变更通知方法的流程图。
该异步状态变更通知方法包括:
步骤S1:当系统中的目标状态发生变更时,记录本次发生变更的目标状态对应的实例索引。
具体地,本申请在系统中的目标状态发生变更时,不会立即进行通知回调,而是记录本次发生变更的目标状态对应的实例索引,具体可将本次发生变更的目标状态对应的实例索引记录在位图(一种数据结构)中,以便后续采用异步事件的方式,由特定的事件处理模块进行通知回调。
步骤S2:判断当前是否存在未处理完成的异步通知事件;若否,则执行步骤S3;若是,则执行步骤S4。步骤S3:发送第一异步通知事件至事件处理模块,以使事件处理模块基于本次记录的实例索引进行通知回调,并在其通知回调完成后将第一异步通知事件标记为已处理完成。步骤S4:等待未处理完成的异步通知事件完成处理,不触发新的异步通知事件。
具体地,为了避免频繁通知回调带来的资源浪费及系统运行效率低下等问题,本申请采用的技术手段为:从触发一异步通知事件到此异步通知事件处理完成期间,不触发新的异步通知事件,由于异步通知事件的总处理时长远大于状态短暂抖动时长,所以有效避免了因状态抖动导致的频繁通知回调问题。
更具体地,本申请在记录本次发生变更的目标状态对应的实例索引之后,判断当前是否存在未处理完成的异步通知事件,若存在未处理完成的异步通知事件,说明当前不允许新的异步通知事件的触发,则等待未处理完成的异步通知事件完成处理,不触发新的异步通知事件;若不存在未处理完成的异步通知事件,说明当前允许新的异步通知事件的触发,则发送第一异步通知事件至事件处理模块;事件处理模块在接收到第一异步通知事件之后,便基于本次记录的实例索引进行通知回调,本申请在事件处理模块通知回调完成后将第一异步通知事件标记为已处理完成,以允许异步通知事件的再次发送。
本发明提供了一种异步状态变更通知方法,当系统中的目标状态发生变更时,记录本次发生变更的目标状态对应的实例索引;判断当前是否存在未处理完成的异步通知事件;若否,则发送第一异步通知事件至事件处理模块,以使事件处理模块基于本次记录的实例索引进行通知回调,并在其通知回调完成后将第一异步通知事件标记为已处理完成;若是,则等待未处理完成的异步通知事件完成处理,不触发新的异步通知事件。可见,本申请从因状态抖动触发一异步通知事件到此异步通知事件处理完成期间,状态抖动仅会产生一个异步通知事件,从而避免了频繁通知回调带来的资源浪费及系统运行效率低下等问题。
在上述实施例的基础上:
作为一种可选的实施例,异步状态变更通知方法还包括:
在发送第一异步通知事件至事件处理模块后,将第一异步通知事件存储至预留事件存储空间;
在将第一异步通知事件标记为已处理完成后,删除预留事件存储空间中的第一异步通知事件;
相应的,判断当前是否存在未处理完成的异步通知事件的过程,包括:
判断预留事件存储空间是否为空;
若是,则确定当前不存在未处理完成的异步通知事件;
若否,则确定当前存在未处理完成的异步通知事件。
具体地,本申请可提前准备一个用于存储未处理完成的异步通知事件的事件存储空间(称为预留事件存储空间),具体是在发送第一异步通知事件至事件处理模块后,将第一异步通知事件存储至预留事件存储空间,并在将第一异步通知事件标记为已处理完成后,删除预留事件存储空间中的第一异步通知事件,以保证预留事件存储空间中只存储有未处理完成的异步通知事件。而本申请在上一个异步通知事件未处理完成时,不能触发新的异步通知事件,所以本申请可通过判断预留事件存储空间是否为空来确定当前是否存在未处理完成的异步通知事件,具体是当预留事件存储空间为空时,确定当前不存在未处理完成的异步通知事件;当预留事件存储空间不为空时,确定当前存在未处理完成的异步通知事件。
作为一种可选的实施例,异步状态变更通知方法还包括:
在系统中的目标状态发生变更后,根据预设状态稳定判定策略判断目标状态是否已状态稳定;
若是,则发送第二异步通知事件至事件处理模块,以使事件处理模块基于目标状态稳定前最后一次记录的实例索引进行通知回调,并在通知回调完成后将第二异步通知事件标记为已处理完成。
需要说明的是,本申请的预设是提前设置好的,只需要设置一次,除非根据实际情况需要修改,否则不需要重新设置。
进一步地,若订阅者需要状态抖动后稳定时的状态通知,则本申请在系统中的目标状态发生变更后,根据预设状态稳定判定策略判断目标状态是否已状态稳定,若目标状态已状态稳定,则发送第二异步通知事件至事件处理模块,事件处理模块在接收到第二异步通知事件之后,便基于目标状态稳定前最后一次记录的实例索引进行通知回调,即实现状态抖动后稳定时的状态通知,本申请在事件处理模块通知回调完成后将第二异步通知事件标记为已处理完成,以允许异步通知事件的再次发送。若目标状态未稳定,则等待目标状态稳定,不触发第二异步通知事件。
作为一种可选的实施例,根据预设状态稳定判定策略判断目标状态是否已状态稳定的过程,包括:
从目标状态发生变更时开始,每隔预设检测周期均检测目标状态,直至持续检测时间到达预设检测时间;
判断在预设检测时间内,目标状态是否一直未再次发生变更;
若是,则确定目标状态已状态稳定。
具体地,本申请对于目标状态的状态稳定判定策略为:从目标状态发生变更时开始启动一个定时机制,每隔预设检测周期(如一秒钟)均检测目标状态,直至持续检测时间到达预设检测时间,才结束目标状态的状态检测。基于此,本申请判断在预设检测时间内,目标状态是否一直未再次发生变更,只有目标状态一直未再次发生变更,才认为目标状态已状态稳定;否则,认为目标状态未稳定。
作为一种可选的实施例,异步状态变更通知方法还包括:
获取订阅者当前感兴趣的系统状态;
在判断出当前不存在未处理完成的异步通知事件之后,在发送第一异步通知事件至事件处理模块之前,判断本次发生变更的目标状态是否为订阅者当前感兴趣的系统状态;
若是,则执行发送第一异步通知事件至事件处理模块的步骤;
若否,则不执行发送第一异步通知事件至事件处理模块的步骤。
进一步地,考虑到订阅者在不同情况下感兴趣的系统状态可能有所不同,可以理解的是,只需要对订阅者当前感兴趣的系统状态进行状态变更通知,所以本申请获取订阅者当前感兴趣的系统状态,并在判断出当前不存在未处理完成的异步通知事件之后,先判断本次发生变更的目标状态是否为订阅者当前感兴趣的系统状态,只有在本次发生变更的目标状态为订阅者当前感兴趣的系统状态时,才执行发送第一异步通知事件至事件处理模块的步骤,即实现对订阅者当前感兴趣的系统状态进行状态变更通知,否则即使当前不存在未处理完成的异步通知事件,也不执行发送第一异步通知事件至事件处理模块的步骤。
作为一种可选的实施例,异步状态变更通知方法还包括:
预先按照订阅者对各系统状态的感兴趣程度设置事件处理模块处理各系统状态对应的异步通知事件的处理完成时长;其中,越感兴趣的系统状态对应的处理完成时长越短;
在发送第一异步通知事件至事件处理模块时开始计时,得到事件已处理时长;
在事件处理模块基于本次记录的实例索引进行通知回调之后,在将第一异步通知事件标记为已处理完成之前,判断事件已处理时长是否达到目标状态对应的处理完成时长;其中,目标状态为任一系统状态;
若是,则允许执行将第一异步通知事件标记为已处理完成的步骤;
若否,则不允许执行将第一异步通知事件标记为已处理完成的步骤。
进一步地,考虑到订阅者对各系统状态的感兴趣程度可能有所不同,可以理解的是,订阅者越感兴趣的系统状态,应允许越频繁地进行状态变更通知,即对越感兴趣的系统状态的状态变更通知所允许的资源使用要求及系统的运行效率要求可以适当降低,所以本申请提前按照订阅者对各系统状态的感兴趣程度设置事件处理模块处理各系统状态对应的异步通知事件的处理完成时长,具体是越感兴趣的系统状态对应的处理完成时长越短,即允许越频繁地进行状态变更通知。基于此,本申请在发送第一异步通知事件至事件处理模块时开始计时,计时时间即为事件已处理时长,然后在事件处理模块基于本次记录的实例索引进行通知回调之后,先判断事件已处理时长是否达到目标状态对应的处理完成时长,只有在事件已处理时长达到目标状态对应的处理完成时长时,才允许执行将第一异步通知事件标记为已处理完成的步骤,否则即使事件处理模块基于本次记录的实例索引完成通知回调,也不允许执行将第一异步通知事件标记为已处理完成的步骤。
请参照图2,图2为本发明实施例提供的一种异步状态变更通知系统的结构示意图。
该异步状态变更通知系统包括:
实例记录模块1,用于当系统中的目标状态发生变更时,记录本次发生变更的目标状态对应的实例索引;
事件判断模块2,用于判断当前是否存在未处理完成的异步通知事件;若否,则执行第一通知模块3;若是,则执行处理等待模块4;
第一通知模块3,用于发送第一异步通知事件至事件处理模块,以使事件处理模块基于本次记录的实例索引进行通知回调,并在其通知回调完成后将第一异步通知事件标记为已处理完成;
处理等待模块4,用于等待未处理完成的异步通知事件完成处理,不触发新的异步通知事件。
作为一种可选的实施例,异步状态变更通知系统还包括:
状态判断模块,用于在系统中的目标状态发生变更后,根据预设状态稳定判定策略判断目标状态是否已状态稳定;若是,则执行第二通知模块;
第二通知模块,用于发送第二异步通知事件至事件处理模块,以使事件处理模块基于目标状态稳定前最后一次记录的实例索引进行通知回调,并在通知回调完成后将第二异步通知事件标记为已处理完成。
作为一种可选的实施例,异步状态变更通知系统还包括:
时长设置模块,用于预先按照订阅者对各系统状态的感兴趣程度设置事件处理模块处理各系统状态对应的异步通知事件的处理完成时长;其中,越感兴趣的系统状态对应的处理完成时长越短;
时长获取模块,用于在发送第一异步通知事件至事件处理模块时开始计时,得到事件已处理时长;
时长判断模块,用于在事件处理模块基于本次记录的实例索引进行通知回调之后,在将第一异步通知事件标记为已处理完成之前,判断事件已处理时长是否达到目标状态对应的处理完成时长;若是,则允许第一通知模块执行将第一异步通知事件标记为已处理完成的步骤;若否,则不允许第一通知模块执行将第一异步通知事件标记为已处理完成的步骤;其中,目标状态为任一系统状态。
本申请提供的通知系统的介绍请参考上述通知方法的实施例,本申请在此不再赘述。
本申请还提供了一种异步状态变更通知装置,包括:
存储器,用于存储计算机程序;
处理器,用于在执行计算机程序时实现上述任一种异步状态变更通知方法的步骤。
本申请提供的通知装置的介绍请参考上述通知方法的实施例,本申请在此不再赘述。
还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其他实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种异步状态变更通知方法,其特征在于,包括:
当系统中的目标状态发生变更时,记录本次发生变更的目标状态对应的实例索引;
判断当前是否存在未处理完成的异步通知事件;
若否,则发送第一异步通知事件至事件处理模块,以使所述事件处理模块基于本次记录的实例索引进行通知回调,并在其通知回调完成后将所述第一异步通知事件标记为已处理完成;
若是,则等待未处理完成的异步通知事件完成处理,不触发新的异步通知事件。
2.如权利要求1所述的异步状态变更通知方法,其特征在于,所述异步状态变更通知方法还包括:
在发送第一异步通知事件至事件处理模块后,将所述第一异步通知事件存储至预留事件存储空间;
在将所述第一异步通知事件标记为已处理完成后,删除所述预留事件存储空间中的所述第一异步通知事件;
相应的,判断当前是否存在未处理完成的异步通知事件的过程,包括:
判断所述预留事件存储空间是否为空;
若是,则确定当前不存在未处理完成的异步通知事件;
若否,则确定当前存在未处理完成的异步通知事件。
3.如权利要求1所述的异步状态变更通知方法,其特征在于,所述异步状态变更通知方法还包括:
在系统中的目标状态发生变更后,根据预设状态稳定判定策略判断所述目标状态是否已状态稳定;
若是,则发送第二异步通知事件至事件处理模块,以使所述事件处理模块基于所述目标状态稳定前最后一次记录的实例索引进行通知回调,并在通知回调完成后将所述第二异步通知事件标记为已处理完成。
4.如权利要求3所述的异步状态变更通知方法,其特征在于,根据预设状态稳定判定策略判断所述目标状态是否已状态稳定的过程,包括:
从所述目标状态发生变更时开始,每隔预设检测周期均检测所述目标状态,直至持续检测时间到达预设检测时间;
判断在所述预设检测时间内,所述目标状态是否一直未再次发生变更;
若是,则确定所述目标状态已状态稳定。
5.如权利要求1所述的异步状态变更通知方法,其特征在于,所述异步状态变更通知方法还包括:
获取订阅者当前感兴趣的系统状态;
在判断出当前不存在未处理完成的异步通知事件之后,在发送第一异步通知事件至事件处理模块之前,判断本次发生变更的目标状态是否为所述订阅者当前感兴趣的系统状态;
若是,则执行发送第一异步通知事件至事件处理模块的步骤;
若否,则不执行发送第一异步通知事件至事件处理模块的步骤。
6.如权利要求1-5任一项所述的异步状态变更通知方法,其特征在于,所述异步状态变更通知方法还包括:
预先按照订阅者对各系统状态的感兴趣程度设置所述事件处理模块处理各系统状态对应的异步通知事件的处理完成时长;其中,越感兴趣的系统状态对应的处理完成时长越短;
在发送第一异步通知事件至事件处理模块时开始计时,得到事件已处理时长;
在所述事件处理模块基于本次记录的实例索引进行通知回调之后,在将所述第一异步通知事件标记为已处理完成之前,判断所述事件已处理时长是否达到所述目标状态对应的处理完成时长;其中,所述目标状态为任一系统状态;
若是,则允许执行将所述第一异步通知事件标记为已处理完成的步骤;
若否,则不允许执行将所述第一异步通知事件标记为已处理完成的步骤。
7.一种异步状态变更通知系统,其特征在于,包括:
实例记录模块,用于当系统中的目标状态发生变更时,记录本次发生变更的目标状态对应的实例索引;
事件判断模块,用于判断当前是否存在未处理完成的异步通知事件;若否,则执行第一通知模块;若是,则执行处理等待模块;
第一通知模块,用于发送第一异步通知事件至事件处理模块,以使所述事件处理模块基于本次记录的实例索引进行通知回调,并在其通知回调完成后将所述第一异步通知事件标记为已处理完成;
处理等待模块,用于等待未处理完成的异步通知事件完成处理,不触发新的异步通知事件。
8.如权利要求7所述的异步状态变更通知系统,其特征在于,所述异步状态变更通知系统还包括:
状态判断模块,用于在系统中的目标状态发生变更后,根据预设状态稳定判定策略判断所述目标状态是否已状态稳定;若是,则执行第二通知模块;
第二通知模块,用于发送第二异步通知事件至事件处理模块,以使所述事件处理模块基于所述目标状态稳定前最后一次记录的实例索引进行通知回调,并在通知回调完成后将所述第二异步通知事件标记为已处理完成。
9.如权利要求7-8任一项所述的异步状态变更通知系统,其特征在于,所述异步状态变更通知系统还包括:
时长设置模块,用于预先按照订阅者对各系统状态的感兴趣程度设置所述事件处理模块处理各系统状态对应的异步通知事件的处理完成时长;其中,越感兴趣的系统状态对应的处理完成时长越短;
时长获取模块,用于在发送第一异步通知事件至事件处理模块时开始计时,得到事件已处理时长;
时长判断模块,用于在所述事件处理模块基于本次记录的实例索引进行通知回调之后,在将所述第一异步通知事件标记为已处理完成之前,判断所述事件已处理时长是否达到所述目标状态对应的处理完成时长;若是,则允许所述第一通知模块执行将所述第一异步通知事件标记为已处理完成的步骤;若否,则不允许所述第一通知模块执行将所述第一异步通知事件标记为已处理完成的步骤;其中,所述目标状态为任一系统状态。
10.一种异步状态变更通知装置,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于在执行所述计算机程序时实现如权利要求1-6任一项所述的异步状态变更通知方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011096123.1A CN112269720B (zh) | 2020-10-14 | 2020-10-14 | 一种异步状态变更通知方法、系统及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011096123.1A CN112269720B (zh) | 2020-10-14 | 2020-10-14 | 一种异步状态变更通知方法、系统及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112269720A CN112269720A (zh) | 2021-01-26 |
CN112269720B true CN112269720B (zh) | 2022-07-15 |
Family
ID=74338542
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011096123.1A Active CN112269720B (zh) | 2020-10-14 | 2020-10-14 | 一种异步状态变更通知方法、系统及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112269720B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102857877A (zh) * | 2011-06-30 | 2013-01-02 | 重庆重邮信科通信技术有限公司 | 一种多方通话中的状态通知方法、设备及系统 |
US20140304221A1 (en) * | 2011-08-23 | 2014-10-09 | Lawlab Pty Ltd. | Collaboration computer system |
CN111125126A (zh) * | 2019-11-29 | 2020-05-08 | 浪潮(北京)电子信息产业有限公司 | 一种存储状态管理方法、系统、电子设备及存储介质 |
US10693817B1 (en) * | 2017-11-30 | 2020-06-23 | Open Invention Network Llc | VNFM resolution of split-brain virtual network function components |
-
2020
- 2020-10-14 CN CN202011096123.1A patent/CN112269720B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102857877A (zh) * | 2011-06-30 | 2013-01-02 | 重庆重邮信科通信技术有限公司 | 一种多方通话中的状态通知方法、设备及系统 |
US20140304221A1 (en) * | 2011-08-23 | 2014-10-09 | Lawlab Pty Ltd. | Collaboration computer system |
US10693817B1 (en) * | 2017-11-30 | 2020-06-23 | Open Invention Network Llc | VNFM resolution of split-brain virtual network function components |
CN111125126A (zh) * | 2019-11-29 | 2020-05-08 | 浪潮(北京)电子信息产业有限公司 | 一种存储状态管理方法、系统、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112269720A (zh) | 2021-01-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2021180025A1 (zh) | 一种消息处理方法、装置、电子设备及介质 | |
EP2933723A1 (en) | Method, device and terminal equipment for cleaning up memory | |
CN112148505A (zh) | 数据跑批系统、方法、电子设备和存储介质 | |
CN109710394A (zh) | 定时任务处理系统及方法 | |
CN106790696B (zh) | 一种消息传输方法和装置 | |
CN113835985B (zh) | 一种监测卡顿、分析卡顿原因的方法、装置及设备 | |
CN111949497B (zh) | 消息队列系统以及基于消息队列系统的消息处理方法 | |
CN111309437A (zh) | 一种逻辑卷的异步删除方法、系统及装置 | |
CN112463066A (zh) | 一种控制分布式块存储逻辑卷突发服务质量的方法和设备 | |
CN116170870A (zh) | 网络注册方法、装置、存储介质及电子设备 | |
CN112269720B (zh) | 一种异步状态变更通知方法、系统及装置 | |
CN111200651A (zh) | 定时调用微服务的方法、系统、设备和介质 | |
JP6351827B2 (ja) | ウイルススキャン方法及びウイルススキャン装置 | |
CN113836232A (zh) | 联盟链中的共识方法和系统 | |
CN100589417C (zh) | 处理电信网管系统拓扑界面大量上报消息的系统和方法 | |
CN111078382A (zh) | 一种命令超时处理方法及装置 | |
CN112463348B (zh) | 一种定时任务处理方法及装置 | |
CN113835859B (zh) | 一种任务调度方法、装置、设备及可读存储介质 | |
CN111475223B (zh) | 一种信息提醒的管理方法、装置 | |
CN112650609B (zh) | 并发资源的处理方法、装置和电子设备 | |
CN110769046B (zh) | 一种报文获取方法、装置、电子设备及机器可读存储介质 | |
CN113868194A (zh) | 一种存储设备本地用户组的管理方法、装置、系统及介质 | |
CN110308938B (zh) | 插拔外设事件的管理方法和装置 | |
CN109284188B (zh) | 一种缓冲数组维护方法、装置、终端及可读介质 | |
CN111414253A (zh) | 垃圾回收GC信息处理方法、Java虚拟机及计算机存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |