CN116089101A - 终端通信状态同步方法、装置、设备及可读存储介质 - Google Patents
终端通信状态同步方法、装置、设备及可读存储介质 Download PDFInfo
- Publication number
- CN116089101A CN116089101A CN202310094350.8A CN202310094350A CN116089101A CN 116089101 A CN116089101 A CN 116089101A CN 202310094350 A CN202310094350 A CN 202310094350A CN 116089101 A CN116089101 A CN 116089101A
- Authority
- CN
- China
- Prior art keywords
- state
- target program
- program
- synchronization
- target
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 105
- 238000004891 communication Methods 0.000 title claims abstract description 64
- 230000008859 change Effects 0.000 claims abstract description 73
- 230000004044 response Effects 0.000 claims abstract description 43
- 230000001360 synchronised effect Effects 0.000 claims abstract description 28
- 230000008569 process Effects 0.000 claims description 31
- 230000007704 transition Effects 0.000 claims description 30
- 230000009471 action Effects 0.000 claims description 24
- 230000002159 abnormal effect Effects 0.000 claims description 23
- 230000002688 persistence Effects 0.000 claims description 9
- 238000012545 processing Methods 0.000 claims description 8
- 239000000725 suspension Substances 0.000 claims description 3
- 238000012546 transfer Methods 0.000 claims description 3
- 238000011084 recovery Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 230000005856 abnormality Effects 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 230000002085 persistent effect Effects 0.000 description 3
- 239000003999 initiator Substances 0.000 description 2
- 230000005012 migration Effects 0.000 description 2
- 238000013508 migration Methods 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000011282 treatment Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Images
Classifications
-
- 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/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multi Processors (AREA)
Abstract
本申请提供一种终端通信状态同步方法、装置、设备及可读存储介质,当一个程序需要与其他程序同步状态时,本申请可在发生状态变化的程序所在的第一终端引入一个中间状态;并可依据中间状态,控制该程序的状态变化;基于程序的状态变化情况,判断程序是否已发送状态同步请求至其他程序;若已发送,则可以判断该程序是否收到其他程序的状态同步响应信息;若该程序收到其他程序的状态同步响应信息,则说明其他程序接收了该程序的状态变化信息并完成了状态同步,则可以确定该程序的状态同步事件已完成。本申请实施例提供的方法可以有效确保通信各端的状态可以实现有效同步,并可以保证通信各端的状态一致性。
Description
技术领域
本申请涉及通信技术领域,尤其涉及一种终端通信状态同步方法、装置、设备及可读存储介质。
背景技术
在实际应用过程中,当处于通信一端的程序A中的某一状态发生变化时,需要将程序A的新状态同步到通信另一端的其他程序B、程序C或者程序D,为了确保程序A的新状态能够同步到别的程序,一般会设置状态同步消息以及状态同步响应机制,在状态响应过程中程序A可以得知其新状态已经成功同步到其他程序,但在这过程中可能需要处理一些边界情况,例如:可能会出现由于程序A自身异常无法发出状态同步消息或是无法处理状态同步响应的情况;或可能会出现由于其他程序B异常,无法更新状态,或是无法发送响应的情况;还有可能会出现由于消息通信链路异常,消息或是响应发生丢失的情况。
为了处理上述可能出现的边界情况,需要引入一些策略进行边界情况下的状态同步,例如,可以设置程序A对状态同步消息在发送后进行缓存,定时重发缓存中的状态同步消息,直到收到状态同步响应后,将状态同步消息从缓存中删除。这种方案是现在比较常用的方案,但是该方案依然存在一些边界问题:例如假设现在程序A的某个事件引起某个状态从“Status 1”转变为“Status 2”,程序A发送状态同步消息,此时程序A正在持续重发等待程序B的响应,此时程序A中该状态已经变为“Status 2”,即使可以设置重发间隔非常短,但这依然会造成一小段时间的状态不同步,在这个期间,可能会引入新的边界问题。例如,在状态同步重发期间,程序A发生了另一事件使得该状态会从“Status 2”转为“Status 3”,此时缓存中就会有两条状态同步消息,这时就需要引入新的机制确保这两条状态同步消息有序发送,且仍然有程序A与程序B两端状态不同步的情况。这种方案对于对状态同步有很强的要求的系统依然无法解决问题,而且在程序A出现异常的情况下,需要对A进行初始化或是重启等异常恢复处理时,为了不丢失缓存中未完成同步的状态,需要再额外设计一套针对缓存的持久化方案,确保缓存中的状态不会丢失。
由此可见,现有的技术方案无法应用在对状态同步要求较高的场景,且设计复杂,不利于现有的应用需求。
发明内容
本申请旨在至少能解决上述的技术缺陷之一,有鉴于此,本申请提供了一种终端通信状态同步方法、装置、设备及可读存储介质,用于解决现有技术中难以实现高效对终端的通信状态进行同步的技术缺陷。
一种终端通信状态同步方法,包括:
在发生状态变化的第一目标程序所在的第一终端引入一个中间状态;
依据所述中间状态,控制所述第一目标程序的状态变化;
基于所述第一目标程序的状态变化情况,判断所述第一目标程序是否已发送状态同步请求至第二目标程序;
若所述第一目标程序已发送状态同步请求至所述第二目标程序,则判断所述第一目标程序是否收到第二目标程序的状态同步响应信息;
若所述第一目标程序收到所述第二目标程序的状态同步响应信息,则确定所述第一目标程序的状态同步事件已完成。
优选地,该方法还包括:
若所述第一目标程序收到所述第二目标程序的状态同步响应信息,则控制所述第一目标程序暂停发送状态同步请求至所述第二目标程序。
优选地,该方法还包括:
判断当前时刻所述第一目标程序的状态变化是否为已完成状态迁移;
若当前时刻所述第一目标程序的状态变化为已完成状态迁移,则创建与所述第一目标程序的状态变化对应的事件处理策略来处理所述第一目标程序的状态迁移事件,直至所述第一目标程序的状态已完成同步。
优选地,该方法还包括:
判断所述第一目标程序的状态是否发生变化;
若所述第一目标程序的状态发生变化,则控制所述第一目标程序的状态进行持久化。
优选地,该方法还包括:
判断所述第一目标程序的状态是否发生异常;
若所述第一目标程序发生异常,则在进行初始化或重启所述第一目标程序的恢复操作之后,立即将所述第一目标程序的状态恢复到所述第一目标程序的状态持久化之前的状态,并持续进行与所述第二目标程序的状态同步工作。
优选地,在所述第一目标程序所在的第一终端引入中间状态之后,所述第一目标程序的状态变化类型,包括:
目标状态、目标事件以及目标动作;
其中,
所述目标状态包括所述第一目标程序当前状态和条件满足后要迁移的状态;
所述目标事件为状态发生转移的条件;
所述目标动作为转移条件被满足后所需要执行的动作。
一种终端通信状态同步装置,包括:
中间状态引入单元,用于在发生状态变化的第一目标程序所在的第一终端引入一个中间状态;
第一控制单元,用于依据所述中间状态,控制所述第一目标程序的状态变化;
第一判断单元,用于基于所述第一目标程序的状态变化情况,判断所述第一目标程序是否已发送状态同步请求至第二目标程序;
第二判断单元,用于当所述第一判断单元的执行结果为所述第一目标程序已发送状态同步请求至所述第二目标程序时,判断所述第一目标程序是否收到第二目标程序的状态同步响应信息;
确定单元,用于当所述第二判断单元的执行结果为所述第一目标程序收到所述第二目标程序的状态同步响应信息,则确定所述第一目标程序的状态同步事件已完成。
优选地,该装置还包括:
暂停单元,用于当所述第二判断单元的执行结果为所述第一目标程序收到所述第二目标程序的状态同步响应信息,则控制所述第一目标程序暂停发送状态同步请求至所述第二目标程序。
一种终端通信状态同步设备,包括:一个或多个处理器,以及存储器;
所述存储器中存储有计算机可读指令,所述计算机可读指令被所述一个或多个处理器执行时,实现如前述介绍中任一项所述终端通信状态同步方法的步骤。
一种可读存储介质,所述可读存储介质中存储有计算机可读指令,所述计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器实现如前述介绍中任一项所述终端通信状态同步方法的步骤。
从以上介绍的技术方案可以看出,当一个程序需要与其他程序进行状态同步时,本申请实施例提供的方法可以在发生状态变化的第一目标程序所在的第一终端引入一个中间状态;并可以依据所述中间状态,控制所述第一目标程序的状态变化;基于所述第一目标程序的状态变化情况,判断所述第一目标程序是否已发送状态同步请求至第二目标程序;若所述第一目标程序已发送状态同步请求至所述第二目标程序,则可以判断所述第一目标程序是否收到第二目标程序的状态同步响应信息;若所述第一目标程序收到所述第二目标程序的状态同步响应信息,则说明所述第二目标程序接收了所述第一目标程序的状态变化信息并完成了状态同步,则可以确定所述第一目标程序的状态同步事件已完成。
本申请实施例提供的方法可以有效确保通信各端的状态可以实现有效同步,并可以保证通信各端的状态一致性。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。
图1为本申请实施例提供的一种实现终端通信状态同步方法的流程图;
图2为本申请实施例示例的一种终端通信状态同步装置结构示意图;
图3为本申请实施例公开的一种终端通信状态同步设备的硬件结构框图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
当处于通信一端的程序A中的某一状态发生变化时,需要将这一新状态同步到通信另一端的其他程序B,也可能是多个程序B、C、D。
为了确保这个状态能够同步到别的程序,通常会设置状态同步消息以及状态同步响应,在响应中A可以得知状态已经成功同步到B,但需要处理一些边界情况,边界情况主要可以分为以下3类:
1.由于程序A自身异常无法发出状态同步消息或是无法处理状态同步响应;
2.由于程序B异常,无法更新状态,或是无法发送响应;
3.由于消息通信链路异常,消息或是响应发生丢失;
为了处理这些情况,可能需要引入一些策略进行边界情况下的状态同步,主要方案有2类:
1.在程序A和程序B中间设置心跳消息,这些心跳消息会在固定时间间隔进行发送以及响应,并在心跳中带入需要同步的状态,这样即使状态同步消息同步失败,也能通过心跳同步两端的状态,但是这种方案适用于状态同步要求非常弱的场景,这种方案也存在一些缺点,例如,程序间的心跳消息为了不影响正常数据的通信,一般不会设置的特别密集,会远少于正常通信的消息量,当状态同步失败后,程序A与程序B会处于不同状态直到下一次心跳,在这个过程中会有一个状态不同步的空档期,很可能会引发别的异常。
2.程序A对状态同步消息在发送后进行缓存,定时重发缓存中的状态同步消息,直到收到状态同步响应后,将状态同步消息从缓存中删除,这种方法比较常用,但是该方案依然存在一些边界问题:
例如假设现在程序A的某个事件引起某个状态从“Status 1”转变为“Status2”,程序A发送状态同步消息,此时程序A正在持续重发等待程序B的响应,此时程序A中该状态已经变为“Status 2”,即使可以设置重发间隔非常短,但这依然会造成一小段时间的状态不同步,在这个期间,可能会引入新的边界问题。
例如,在状态同步重发期间,程序A发生了另一事件使得该状态会从“Status 2”转为“Status 3”,此时缓存中就会有两条状态同步消息,这时就需要引入新的机制确保这两条状态同步消息有序发送,且仍然有程序A与程序B两端状态不同步的情况。
这种方案对于对状态同步有很强的要求的系统依然无法解决问题,而且在程序A出现异常的情况下,需要对A进行初始化或是重启等异常恢复处理时,为了不丢失缓存中未完成同步的状态,需要再额外设计一套针对缓存的持久化方案,确保缓存中的状态不会丢失。
鉴于目前大部分的终端通信状态同步方案难以适应复杂多变的业务需求,为此,本申请人研究了一种终端通信状态同步方案,该终端通信状态同步方案可以有效确保通信各端的状态可以实现有效同步,并可以保证通信各端的状态一致性。
本申请实施例提供的方法可以用于众多通用或专用的计算装置环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器装置、包括以上任何装置或设备的分布式计算环境等等。
本申请实施例提供一种终端通信状态同步方法,该方法可以应用于各种通信管理系统中,亦可以应用在各种计算机终端或是智能终端中,其执行主体可以为计算机终端或是智能终端的处理器或服务器。
下面结合图1,介绍本申请实施例给出的终端通信状态同步方法的流程,如图1所示,该流程可以包括以下几个步骤:
步骤S101,在发生状态变化的第一目标程序所在的第一终端引入一个中间状态。
具体地,在实际应用过程中,当一个程序的状态发生变化之后,需要将该程序的状态及时同步给其他程序。
为了更好地将该程序的状态变化同步给其他程序,可以在发生状态变化的第一目标程序所在的第一终端引入一个中间状态,以便可以依据所述第一目标程序所引入的中间状态来实现对所述第一目标程序的状态同步。
其中,在所述第一目标程序所在的第一终端引入中间状态之后,所述第一目标程序的状态变化类型,可以包括:
目标状态、目标事件以及目标动作;
其中,
所述目标状态可以包括所述第一目标程序的当前状态和条件满足后要迁移的状态;
所述目标事件可以为状态发生转移的条件;
所述目标动作可以作为转移条件被满足后所需要执行的动作。
例如,
在状态变化的程序A端,在“Status 1”与“Status 2”中引入一个中间状态“SyncStatus 1to 2”,所以A的状态变化由原先的“Event 1”引发“Status1”转为“Status 2”,变为引发“Status 1”转为“Sync Status 1to 2”。
在程序A引发“Status 1”转为“Sync Status 1to 2”的这个状态下,程序A可以不断地重发状态同步消息给其他程序,直到程序A收到其他程序返回的状态同步响应。
程序A“收到状态同步响应”则成为了一个事件,会引发“Sync Status 1to2”转为“Status 2”。
步骤S102,依据所述中间状态,控制所述第一目标程序的状态变化。
具体地,由上述介绍可知,本申请实施例提供的方法可以在发生状态变化的第一目标程序所在的第一终端引入一个中间状态。
在所述第一目标程序所在的第一终端引入一个中间状态,可以利用所述中间状态来实现对所述第一目标程序的状态同步。
因此,在引入所述中间状态之后,本申请实施例提供的方法可以进一步依据所述中间状态,控制所述第一目标程序的状态变化。
例如,在实际应用过程中,可以使用有限状态机原理控制所述第一目标程序的状态变化。
有限状态机是由寄存器组和组合逻辑构成的硬件时序电路。有限状态机的状态只可能在同一时钟跳变沿的情况下才能从一个状态转向另一个状态,其中,有限状态机的状态是指由寄存器组的1和0的组合状态所构成的有限个状态。
有限状态机的下一个状态不但取决于各个输入值,还取决于当前所在状态。这里指的是米里Mealy型有限状态机,而莫尔Moore型有限状态机的下一个状态只决于当前状态。
状态机的描述方法多种多样,将整个状态机写到1个always模块里,在该模块中既描述状态转移,又描述状态的输入和输出,这种写法一般被称为一段式FSM描述方法;还有一种写法是使用两个always模块,其中一个always模块采用同步时序的方式描述状态转移,而另一个模块采用组合逻辑的方式判断状态转移条件,描述状态转移规律,这种写法被称为两段式FSM描述方法。
还有一种写法是在两段式描述方法的基础上发展而来的,这种写法使用3个always模块,一个always模块采用同步时序的方式描述状态转移,一个采用组合逻辑的方式判断状态转移条件,描述状态转移规律,第三个always模块使用同步时序电路描述每个状态的输出,这种写法称为三段式写法。
在有限状态机原理中,状态可以有三个组成部分:状态,事件,动作。
1.状态:所有可能存在的状态,包括当前状态和条件满足后要迁移的状态。
2.事件:也称为转移条件,当一个条件被满足,将会触发一个动作,或者执行一次状态的迁移。
3.动作:条件满足后执行的动作,动作执行完毕后,可以迁移到新的状态,也可以仍旧保持原状态。动作不是必需的,当条件满足后,也可以不执行任何动作,直接迁移到新状态。
使用状态同步中间状态,以及有限状态机原理,可以更加准确地对状态的变化以及状态的同步进行控制。
步骤S103,基于所述第一目标程序的状态变化情况,判断所述第一目标程序是否已发送状态同步请求至第二目标程序。
具体地,由上述介绍可知,本申请实施例提供的方法可以依据所述中间状态,控制所述第一目标程序的状态变化。
进一步地,在实际应用过程中,当所述第一目标程序发生状态变化时,所述第一目标程序可能会向其他程序发送状态同步请求,本申请实施例提供的方法可以进一步基于所述第一目标程序的状态变化情况,判断所述第一目标程序是否已发送状态同步请求至第二目标程序,以便可以及时确认所述第一目标程序是否发送了状态同步请求给其他程序。
例如,所述第一目标程序可以同时向一个或多个程序发送状态同步请求。
若所述第一目标程序已发送状态同步请求至所述第二目标程序,则说明其他程序可能已经收到了所述第一目标程序的状态同步请求。
步骤S104,判断所述第一目标程序是否收到第二目标程序的状态同步响应信息。
具体地,由上述介绍可知,本申请实施例提供的方法可以基于所述第一目标程序的状态变化情况,判断所述第一目标程序是否已发送状态同步请求至第二目标程序。
若所述第一目标程序已发送状态同步请求至所述第二目标程序,则说明其他程序可能已经收到了所述第一目标程序的状态同步请求。
则可以进一步判断所述第一目标程序是否收到第二目标程序的状态同步响应信息,以便可以判断所述第一目标程序的状态同步是否已经完成。
步骤S105,控制所述第一目标程序暂停发送状态同步请求至所述第二目标程序,并确定所述第一目标程序的状态同步事件已完成。
具体地,由上述介绍可知,本申请实施例提供的方法可以判断所述第一目标程序是否收到第二目标程序的状态同步响应信息。
在实际应用过程中,其他程序在接收到所述第一目标程序的状态同步请求之后,可以依据所述第一目标程序发送的状态同步请求,并依据所述第一目标程序发送的状态同步请求完成状态同步,并向所述第一目标程序发送状态同步响应的信息。
因此,若所述第一目标程序收到第二目标程序的状态同步响应信息,则说明所述第一目标程序的状态变化已经在所述第二目标程序中完成了同步,则可以控制所述第一目标程序暂停发送状态同步请求至所述第二目标程序,并确定所述第一目标程序的状态同步事件已完成。
从上述介绍的技术方案可以看出,当一个程序需要与其他程序进行状态同步时,本申请实施例提供的方法可以在发生状态变化的第一目标程序所在的第一终端引入一个中间状态;并可以依据所述中间状态,控制所述第一目标程序的状态变化;基于所述第一目标程序的状态变化情况,判断所述第一目标程序是否已发送状态同步请求至第二目标程序;若所述第一目标程序已发送状态同步请求至所述第二目标程序,则可以判断所述第一目标程序是否收到第二目标程序的状态同步响应信息;若所述第一目标程序收到所述第二目标程序的状态同步响应信息,则说明所述第二目标程序接收了所述第一目标程序的状态变化信息并完成了状态同步,则可以确定所述第一目标程序的状态同步事件已完成。
本申请实施例提供的方法可以有效确保通信各端的状态可以实现有效同步,并可以保证通信各端的状态一致性。
在实际应用过程中,本申请实施例提供的方法还可以进一步判断所述第一目标程序的状态变化是否已经完成状态迁移,以便可以设置不同的处理策略来处理所述第一目标程序的状态迁移事件。接下来介绍该过程,该过程可以包括如下几个步骤:
步骤S201,判断当前时刻所述第一目标程序的状态变化是否为已完成状态迁移。
具体地,在实际应用过程中,当程序的状态发生变化时,本申请实施例提供的方法可以实时监控程序的状态变化情况。
当所述第一目标程序的状态发生变化时,本申请实施例提供的方法可以判断在当前时刻,所述第一目标程序的状态变化是否为已经完成状态迁移的状态。
若当前时刻所述第一目标程序的状态变化为已完成状态迁移,则可以说明所述第一目标程序的状态变化已经发展成一个事件,则可以执行步骤S202。
步骤S202,创建与所述第一目标程序的状态变化对应的事件处理策略来处理所述第一目标程序的状态迁移事件,直至所述第一目标程序的状态已完成同步。
具体地,由上述介绍可知,本申请实施例提供的方法可以实时监控所述第一目标程序的状态变化,并可以判断当前时刻所述第一目标程序的状态变化是否为已完成状态迁移。
若当前时刻所述第一目标程序的状态变化为已完成状态迁移,则可以说明所述第一目标程序的状态变化已经发展成一个事件,则可以创建与所述第一目标程序的状态变化对应的事件处理策略来处理所述第一目标程序的状态迁移事件,直至所述第一目标程序的状态已完成同步。
例如,
程序A现在处于“Status 1”发生了“Event 1”执行了“Action 1”使得“Status 1”转为“Sync Status 1to 2”;
在这个状态中,如果程序A的状态发生了“Event 2”(“Event 2”会执行“Action 2”使“Status 2”转为“Status3”),此时可以在“Event 2”在“Sync Status 1to 2”状态下执行的“Action 2*”中设置更多策略来处理当前的事件。
例如,
当所述第一目标程序的状态变化已经发展成一个事件时,可以直接忽略该事件;
所述第一目标程序的状态变化已经发展成一个事件时,也可以阻塞原有“Action2”的执行,直到状态同步完成,状态已经迁移到“Status 2”后,再执行“Action 2”,确保状态可控有序的转换,如果有需要的话也可以控制状态转移到另一状态“Status 3*”。
使用中间状态,配合有限状态机原理,可以更加细腻地控制事件引发的行为,以及最后的状态转移,帮助程序完成本地状态的可控性以及与通信另一端程序的状态一致性。
即不会存在程序A为“Status 2”但程序B任然为“Status 1”的情况。
从上述介绍的技术方案可以看出,本申请实施例提供的方法可以实时监控所述第一目标程序的状态变化,可以判断所述第一目标程序的状态变化是否已经完成状态迁移,以便可以设置不同的处理策略来处理所述第一目标程序的状态迁移事件。
在实际应用过程中,本申请实施例提供的方法还可以实时监控所述第一目标程序的状态是否发生变化,以便可以对所述第一目标程序的状态进行不同的处置,接下来介绍该过程,该过程可以包括如下几个步骤:
步骤S301,判断所述第一目标程序的状态是否发生变化。
具体地,在实际应用过程中,本申请实施例提供的方法可以实时监控所述第一目标程序的状态,若所述第一目标程序的状态发生变化,则本申请实施例提供的方法可以判断所述第一目标程序的状态是否发生变化,以便可以在所述第一目标程序的状态发生变化时及时做出响应。
步骤S301,控制所述第一目标程序的状态进行持久化。
具体地,由上述介绍可知,本申请实施例提供的方法可以判断所述第一目标程序的状态是否发生变化,若确定所述第一目标程序的状态发生变化,为了可以在所述第一目标程序发生异常时可以及时恢复所述第一目标程序的状态,本申请实施例提供的方法可以控制所述第一目标程序的状态进行持久化。以便可以在所述第一目标程序发生异常时及时恢复所述第一目标程序的状态。
从上述介绍的技术方案可以看出,本申请实施例提供的方法可以实时监控所述第一目标程序的状态是否发生变化,以便可以判断所述第一目标程序的状态是否发生变化,并在确定所述第一目标程序的状态发生变化时,可以控制所述第一目标程序的状态进行持久化,以便可以在所述第一目标程序发生异常时及时恢复所述第一目标程序的状态。本申请实施例提供的方法可以有效地对状态同步过程进行持久化,同步发起方可以从持久化数据中恢复正在同步中的状态。
在实际应用过程中,本申请实施例提供的方法还可以在所述第一目标程序发生异常时,及时恢复所述第一目标程序的状态,并继续所述第一目标程序与所述第二目标程序之间的状态同步工作,接下来介绍该过程,该过程可以包括如下几个步骤:
步骤S401,判断所述第一目标程序的状态是否发生异常。
具体地,在实际应用过程中,本申请实施例提供的方法可以实时监控所述第一目标程序的状态。
例如,本申请实施例提供的方法可以判断所述第一目标程序的状态是否发生异常,当所述第一目标程序的状态发生异常时,说明可能需要对所述第一目标程序进行重启或初始化操作。
步骤S402,在进行初始化或重启所述第一目标程序的恢复操作之后,立即将所述第一目标程序的状态恢复到所述第一目标程序的状态持久化之前的状态,并持续进行与所述第二目标程序的状态同步工作。
具体地,由上述介绍可知,本申请实施例提供的方法可以实时监控所述第一目标程序的状态是否发生变化或异常。
当确定所述第一目标程序的状态发生异常时,则说明可能需要对所述第一目标程序进行重启或初始化操作。
因此,在确定所述第一目标程序发生异常时,则可以对所述第一目标程序进行初始化或者重启的恢复操作,并在进行初始化或重启所述第一目标程序的恢复操作之后,立即将所述第一目标程序的状态恢复到所述第一目标程序的状态持久化之前的状态,并持续进行与所述第二目标程序的状态同步工作。
例如,
每当状态发生变化,可以立即将程序A的状态进行持久化,若程序A发生异常,需要进行初始化或是重启等恢复操作,则可以在恢复后,可以立即恢复之前持久化的状态“SyncStatus 1to 2”,继续与程序B的状态同步工作,可以减少额外持久化程序中别的模块的工作。
由上述介绍的技术方案可知,本申请实施例提供的方法可以实时监控所述第一目标程序的状态是否发生异常,并可以在所述第一目标程序发生异常时,及时恢复所述第一目标程序的状态,并继续所述第一目标程序与所述第二目标程序之间的状态同步工作。本申请实施例提供的方法可以有效地对状态同步过程进行持久化,同步发起方可以从持久化数据中恢复正在同步中的状态。
下面对本申请实施例提供的终端通信状态同步装置进行描述,下文描述的终端通信状态同步装置与上文描述的终端通信状态同步方法可相互对应参照。
参见图2,图2为本申请实施例公开的一种终端通信状态同步装置结构示意图。
如图2所示,该终端通信状态同步装置可以包括:
中间状态引入单元101,用于在发生状态变化的第一目标程序所在的第一终端引入一个中间状态;
第一控制单元102,用于依据所述中间状态,控制所述第一目标程序的状态变化;
第一判断单元103,用于基于所述第一目标程序的状态变化情况,判断所述第一目标程序是否已发送状态同步请求至第二目标程序;
第二判断单元104,用于当所述第一判断单元的执行结果为所述第一目标程序已发送状态同步请求至所述第二目标程序时,判断所述第一目标程序是否收到第二目标程序的状态同步响应信息;
确定单元105,用于当所述第二判断单元的执行结果为所述第一目标程序收到所述第二目标程序的状态同步响应信息,则确定所述第一目标程序的状态同步事件已完成。
从以上介绍的技术方案可以看出,当一个程序需要与其他程序进行状态同步时,本申请实施例提供的装置可以在发生状态变化的第一目标程序所在的第一终端引入一个中间状态;并可以依据所述中间状态,控制所述第一目标程序的状态变化;基于所述第一目标程序的状态变化情况,判断所述第一目标程序是否已发送状态同步请求至第二目标程序;若所述第一目标程序已发送状态同步请求至所述第二目标程序,则可以判断所述第一目标程序是否收到第二目标程序的状态同步响应信息;若所述第一目标程序收到所述第二目标程序的状态同步响应信息,则说明所述第二目标程序接收了所述第一目标程序的状态变化信息并完成了状态同步,则可以确定所述第一目标程序的状态同步事件已完成。
本申请实施例提供的装置可以有效确保通信各端的状态可以实现有效同步,并可以保证通信各端的状态一致性。
进一步可选的,该装置还可以包括:
暂停单元,用于当所述第二判断单元的执行结果为所述第一目标程序收到所述第二目标程序的状态同步响应信息,则控制所述第一目标程序暂停发送状态同步请求至所述第二目标程序。
其中,上述终端通信状态同步装置所包含的各个单元的具体处理流程,可以参照前文终端通信状态同步方法部分相关介绍,此处不再赘述。
本申请实施例提供的终端通信状态同步装置可应用于终端通信状态同步设备,如终端:手机、电脑等。可选的,图3示出了终端通信状态同步设备的硬件结构框图,参照图3,终端通信状态同步设备的硬件结构可以包括:至少一个处理器1,至少一个通信接口2,至少一个存储器3和至少一个通信总线4。
在本申请实施例中,处理器1、通信接口2、存储器3、通信总线4的数量为至少一个,且处理器1、通信接口2、存储器3通过通信总线4完成相互间的通信。
处理器1可能是一个中央处理器CPU,或者是特定集成电路ASIC(ApplicationSpecific Integrated Circuit),或者是被配置成实施本申请实施例的一个或多个集成电路等;
存储器3可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatilememory)等,例如至少一个磁盘存储器;
其中,存储器存储有程序,处理器可调用存储器存储的程序,所述程序用于:实现前述终端在终端通信状态同步方案中的各个处理流程。
本申请实施例还提供一种可读存储介质,该存储介质可存储有适于处理器执行的程序,所述程序用于:实现前述终端在终端通信状态同步方案中的各个处理流程。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。各个实施例之间可以相互组合。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种终端通信状态同步方法,其特征在于,包括:
在发生状态变化的第一目标程序所在的第一终端引入一个中间状态;
依据所述中间状态,控制所述第一目标程序的状态变化;
基于所述第一目标程序的状态变化情况,判断所述第一目标程序是否已发送状态同步请求至第二目标程序;
若所述第一目标程序已发送状态同步请求至所述第二目标程序,则判断所述第一目标程序是否收到第二目标程序的状态同步响应信息;
若所述第一目标程序收到所述第二目标程序的状态同步响应信息,则确定所述第一目标程序的状态同步事件已完成。
2.根据权利要求1所述的方法,其特征在于,该方法还包括:
若所述第一目标程序收到所述第二目标程序的状态同步响应信息,则控制所述第一目标程序暂停发送状态同步请求至所述第二目标程序。
3.根据权利要求1所述的方法,其特征在于,该方法还包括:
判断当前时刻所述第一目标程序的状态变化是否为已完成状态迁移;
若当前时刻所述第一目标程序的状态变化为已完成状态迁移,则创建与所述第一目标程序的状态变化对应的事件处理策略来处理所述第一目标程序的状态迁移事件,直至所述第一目标程序的状态已完成同步。
4.根据权利要求1所述的方法,其特征在于,该方法还包括:
判断所述第一目标程序的状态是否发生变化;
若所述第一目标程序的状态发生变化,则控制所述第一目标程序的状态进行持久化。
5.根据权利要求4所述的方法,其特征在于,该方法还包括:
判断所述第一目标程序的状态是否发生异常;
若所述第一目标程序发生异常,则在进行初始化或重启所述第一目标程序的恢复操作之后,立即将所述第一目标程序的状态恢复到所述第一目标程序的状态持久化之前的状态,并持续进行与所述第二目标程序的状态同步工作。
6.根据权利要求1-5任一项所述的方法,其特征在于,在所述第一目标程序所在的第一终端引入中间状态之后,所述第一目标程序的状态变化类型,包括:
目标状态、目标事件以及目标动作;
其中,
所述目标状态包括所述第一目标程序当前状态和条件满足后要迁移的状态;
所述目标事件为状态发生转移的条件;
所述目标动作为转移条件被满足后所需要执行的动作。
7.一种终端通信状态同步装置,其特征在于,包括:
中间状态引入单元,用于在发生状态变化的第一目标程序所在的第一终端引入一个中间状态;
第一控制单元,用于依据所述中间状态,控制所述第一目标程序的状态变化;
第一判断单元,用于基于所述第一目标程序的状态变化情况,判断所述第一目标程序是否已发送状态同步请求至第二目标程序;
第二判断单元,用于当所述第一判断单元的执行结果为所述第一目标程序已发送状态同步请求至所述第二目标程序时,判断所述第一目标程序是否收到第二目标程序的状态同步响应信息;
确定单元,用于当所述第二判断单元的执行结果为所述第一目标程序收到所述第二目标程序的状态同步响应信息,则确定所述第一目标程序的状态同步事件已完成。
8.根据权利要求7所述的装置,其特征在于,该装置还包括:
暂停单元,用于当所述第二判断单元的执行结果为所述第一目标程序收到所述第二目标程序的状态同步响应信息,则控制所述第一目标程序暂停发送状态同步请求至所述第二目标程序。
9.一种终端通信状态同步设备,其特征在于,包括:一个或多个处理器,以及存储器;
所述存储器中存储有计算机可读指令,所述计算机可读指令被所述一个或多个处理器执行时,实现如权利要求1至6中任一项所述终端通信状态同步方法的步骤。
10.一种可读存储介质,其特征在于:所述可读存储介质中存储有计算机可读指令,所述计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器实现如权利要求1至6中任一项所述终端通信状态同步方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310094350.8A CN116089101A (zh) | 2023-01-31 | 2023-01-31 | 终端通信状态同步方法、装置、设备及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310094350.8A CN116089101A (zh) | 2023-01-31 | 2023-01-31 | 终端通信状态同步方法、装置、设备及可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116089101A true CN116089101A (zh) | 2023-05-09 |
Family
ID=86206181
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310094350.8A Pending CN116089101A (zh) | 2023-01-31 | 2023-01-31 | 终端通信状态同步方法、装置、设备及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116089101A (zh) |
-
2023
- 2023-01-31 CN CN202310094350.8A patent/CN116089101A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP1116115B1 (en) | Protocol for replicated servers | |
US9465650B2 (en) | Executing distributed globally-ordered transactional workloads in replicated state machines | |
JP2002522845A (ja) | フォールトトレラント・コンピュータシステム | |
CN107025152B (zh) | 基于任务级的双冗余热备份设备的数据同步方法 | |
US20160350350A1 (en) | Ensuring the same completion status for transactions after recovery in a synchronous replication environment | |
JP6431197B2 (ja) | スナップショット処理方法および関係付けられたデバイス | |
CN111190766A (zh) | 基于HBase数据库的跨机房集群的容灾方法、装置和系统 | |
CN110109772B (zh) | 一种cpu的重启方法、通信设备及可读存储介质 | |
CN102045187B (zh) | 一种利用检查点实现高可用性系统的方法和设备 | |
CN112596801B (zh) | 事务处理方法、装置、设备、存储介质、数据库 | |
CN112948484A (zh) | 分布式数据库系统和数据灾备演练方法 | |
CN114500416A (zh) | 用于最多一次消息投递的投递方法和投递系统 | |
CN102841840B (zh) | 基于消息重排序和消息数目检验的消息日志恢复方法 | |
CN117591014A (zh) | 数据读写控制方法、装置、设备及计算机可读存储介质 | |
CN110351122B (zh) | 容灾方法、装置、系统与电子设备 | |
CN116089101A (zh) | 终端通信状态同步方法、装置、设备及可读存储介质 | |
CN111858177B (zh) | 进程间通信的异常修复方法、装置、电子设备及存储介质 | |
CN114598593A (zh) | 消息处理方法、系统、计算设备及计算机存储介质 | |
CN117395263B (zh) | 一种数据同步方法、装置、设备和存储介质 | |
JP2006330782A (ja) | 冗長構成システムおよび第1のコンピュータシステムに障害が発生したときに第2のコンピュータシステムが直ちにリカバーする方法 | |
JP2002108640A (ja) | デュープレックスシステム、シングルプロセッサシステム、及びサブボード | |
Makhijani et al. | An efficient protocol using smart interval for coordinated checkpointing | |
CN115495205B (zh) | 一种基于分布式事务锁实现数据一致性的方法和装置 | |
JP4193754B2 (ja) | データ二重化方法とプログラム | |
CN115344424A (zh) | 一种同步状态恢复方法、装置、设备及存储介质 |
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 |