一种异步状态机控制方法及装置制造方法及图纸

技术编号:22640024 阅读:21 留言:0更新日期:2019-11-26 15:46
本发明专利技术实施例公开了一种异步状态机控制方法及装置,所述方法包括:监控目标状态是否发生改变;当所述目标状态发生改变时,异步结构体触发包含所述目标状态的状态机;其中,所述异步结构体是预先创建的,所述包含所述目标状态的状态机是预先注册到异步结构体中的;所述包含所述目标状态的状态机进行计算。本发明专利技术提供的技术方案,通过采用所有相关的状态机共享一个异步回调函数,当一种状态发生改变时,该状态对应的异步结构体会触发其上注册的所有的状态机同时进行计算,从而解决在集群状态管理中无法实时更新状态的问题。

An asynchronous state machine control method and device

The embodiment of the invention discloses an asynchronous state machine control method and device, the method includes: monitoring whether the target state changes; when the target state changes, the asynchronous structure triggers the state machine containing the target state; wherein, the asynchronous structure is pre created, and the state machine containing the target state is pre registered to asynchronous In the structure; the state machine including the target state is used for calculation. The technical scheme of the invention adopts that all related state machines share an asynchronous callback function, when a state changes, the asynchronous structure corresponding to the state will trigger all state machines registered on it to calculate at the same time, so as to solve the problem that the state cannot be updated in real time in the cluster state management.

【技术实现步骤摘要】
一种异步状态机控制方法及装置
本专利技术涉及计算机
,尤其是涉及一种异步状态机控制方法及装置。
技术介绍
状态机是有限状态自动机的简称,不是指一台实际的机器,而是现实事物运行规则抽象而成的一个数学模型。对于一个状态机而言,如果同时给定它的当前状态以及输入,那么输出状态是可以明确运算出来的。例如对于自动门,给定当前状态“关门状态”以及输入“开门”,那么通过运算下一个状态应该是“开门状态”。在集群状态管理中,由于集群需要管理和配置的状态众多,各种实时状态和配置信息都需要根据集群当前状态和当前程序运行来决定是否更新实时状态、修改配置信息等,所以状态机在集群管理中起着至关重要的作用。在集群中,如果还是单纯采用同步处理,即前一个事件执行完了才能执行后一个事件,遇到如Ajax这种耗时很长的请求,服务器在等待的这段时间就没法操作进而出现卡顿现象,更有甚者,如果这个请求由于某种原因一直没有完成,集群涉及到的对象基数庞大,那么所有的对象状态都需要等待这个请求致使服务器集群瘫痪,从而无法实时更新状态。所以单纯的采用同步输入、计算、更新、输出串行机制逻辑处理等同步处理操作无法满足集群状态管理中状态实时更新的需求。
技术实现思路
本专利技术提供一种异步状态机控制方法及装置,用以解决在集群状态管理中无法实时更新状态的问题。在本申请第一方面提供了一种异步状态机控制方法,所述方法包括:监控目标状态是否发生改变;当所述目标状态发生改变时,异步结构体触发包含所述目标状态的状态机;其中,所述异步结构体是预先创建的,所述包含所述目标状态的状态机是预先注册到异步结构体中的;所述包含所述目标状态的状态机进行计算。可选的,所述方法还包括:当状态机计算完目标状态后,通知用户状态机已完成所述目标状态的计算。可选的,所述监控目标状态是否发生改变包括:订阅监控目标状态是否发生改变;当所述目标状态发生改变时,发送订阅消息给异步结构体,触发包含所述目标状态的状态机。可选的,所述方法还包括:定义状态机的逻辑函数;异步结构体触发所有注册到所述异步结构体的相互关联的状态机通过逻辑函数进行计算。可选的,所述逻辑函数包括:所述逻辑函数被嵌入到异步结构体中的异步调用功能。在本申请第二方面提供了异步状态机控制装置,所述装置包括:监控单元,调度单元,创建单元与注册单元;所述监控单元用于监控目标状态是否发生改变;所述调度单元用于当所述目标状态发生改变时,异步结构体触发包含所述目标状态的状态机;所述创建单元用于创建异步结构体;所述注册单元用于将包含所述目标状态的状态机注册到异步结构体中。可选的,所述装置还包括:通知单元,用于当状态机计算完目标状态后,通知用户状态机已完成所述目标状态的计算。可选的,所述装置还包括:订阅单元,用于当所述目标状态发生改变时,发送订阅消息给异步结构体,触发包含所述目标状态的状态机。可选的,所述装置还包括:定义单元,用于定义状态机的逻辑函数。可选的,所述定义单元包括:嵌入模块,用于将逻辑函数嵌入到异步结构体中的异步调用功能。相对于现有技术,本申请上述技术方案的优点在于:本专利技术提出了一种异步状态机控制方法,通过采用具有一种相同状态的所有状态机共享一个异步结构体,当一种状态发生改变时,该状态对应的异步结构体会触发其上注册的所有的状态机同时进行计算,就避免了现有技术中状态机只能顺序进行计算,必须要等待其他无关状态计算完毕之后才能继续进行计算的现象。同时对状态机和所要处理的状态增加订阅和通知的触发机制,能够更好控制和管理状态的触发、输入、计算、更新。在集群状态管理中能够优化管理机制,有效调度管理修改配置信息和更新系统状态。附图说明为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。图1为本申请提供的一种异步状态机控制方法的流程图;图2为本申请提供的一种异步状态机控制方法的流程图。具体实施方式为了使本
的人员更好地理解本专利技术方案,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。申请人在使用状态机对集群状态进行管理中发现,采用传统的同步状态机对集群状态进行管理时,总会出现卡顿甚至是死机的状况。经专利技术人研究发现,上述问题的原因大部分是因为需要等待太多无效的状态致使程序无法按照顺序继续运行。为了解释的更加清楚,下面举例进行说明。现有三个状态机A、B、C,状态机A具有三种状态a、b、c,状态机B具有两种状态a、b,状态机C具有一种状态a。采用传统的同步状态机应该先执行状态机A、再执行状态机B、最后执行状态机C,若监听的状态a发生改变,状态机A不仅要执行状态a的逻辑计算、还要执行状态b与c的逻辑运算,全部执行完毕后再执行状态机B的计算。同理状态机B不仅需要计算状态a还需要计算状态b,计算完毕后才能计算状态机C的状态a,至此整个计算流程才算结束。可以看到,在状态机A计算状态b时,如果迟迟运算不出结果就会影响接下来的运算,就会出现卡顿的现象,如果运算结果一直不出来就会因为长时间的等待出现死机的现象,但是,状态机A计算状态b的过程并不是我们需要应该等待的计算过程。基于此,申请人提供了一种异步状态机控制方法,通过采用异步调度机制来实现对集群状态机的异步处理,所有状态机通过共享一个异步回调函数,当状态机监听的订阅输入发生改变时,注册到同一共享异步回调函数的状态机都会被触发,不再顺序执行状态机的逻辑计算。同时对状态机和所要处理的状态增加订阅和通知机制,可以不再等待不需要计算的状态,如状态机的状态B与C。参见图1,图1是本申请提供的一种异步状态机控制方法的流程图,如图1所示,该方法可以包括以下步骤101-步骤102。S101:监控目标状态是否发生改变。S102:当所述目标状态发生改变时,异步结构体触发包含所述目标状态的状态机;其中,所述包含所述目标状态的状态机是预先注册到异步结构体中的。创建状态机异步结构体,用于跟踪执行状态机的回调状态。根据操作的对象数据库基数定义要执行的实例,创建与其状态相关的状态机,将一组相关的状态机注册到同一个异步结构体上。一组相关的状态机共享同一个异步结构体是为了该组状态机可以对应到同一个异步结构体,便于当该组中某一状态机的某一个状态发生改变时,注册到同一异步结构体的状态机都可以被触发进行计算。本文档来自技高网
...

【技术保护点】
1.一种异步状态机控制方法,其特征在于,所述方法包括:/n监控目标状态是否发生改变;/n当所述目标状态发生改变时,异步结构体触发包含所述目标状态的状态机;其中,所述异步结构体是预先创建的,所述包含所述目标状态的状态机是预先注册到异步结构体中的;/n所述包含所述目标状态的状态机进行计算。/n

【技术特征摘要】
1.一种异步状态机控制方法,其特征在于,所述方法包括:
监控目标状态是否发生改变;
当所述目标状态发生改变时,异步结构体触发包含所述目标状态的状态机;其中,所述异步结构体是预先创建的,所述包含所述目标状态的状态机是预先注册到异步结构体中的;
所述包含所述目标状态的状态机进行计算。


2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当状态机计算完目标状态后,通知用户状态机已完成所述目标状态的计算。


3.根据权利要求1所述的方法,其特征在于,所述监控目标状态是否发生改变包括:
订阅监控目标状态是否发生改变;
当所述目标状态发生改变时还包括:发送订阅消息给异步结构体,触发包含所述目标状态的状态机。


4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
定义状态机的逻辑函数;
异步结构体触发所有注册到所述异步结构体的相互关联的状态机通过逻辑函数进行计算。


5.根据权利要求4所述的方法,其特征在于,所述逻辑函数包括:
被嵌入到异步结构体中的异步调用功能。<...

【专利技术属性】
技术研发人员:贺坤
申请(专利权)人:苏州浪潮智能科技有限公司
类型:发明
国别省市:江苏;32

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

1