[发明专利]服务守护方法、装置及可读存储介质在审
申请号: | 201910604997.4 | 申请日: | 2019-07-05 |
公开(公告)号: | CN112181609A | 公开(公告)日: | 2021-01-05 |
发明(设计)人: | 王修梓;徐陇浙 | 申请(专利权)人: | 浙江宇视科技有限公司 |
主分类号: | G06F9/48 | 分类号: | G06F9/48;G06F9/52 |
代理公司: | 北京超凡宏宇专利代理事务所(特殊普通合伙) 11463 | 代理人: | 唐维虎 |
地址: | 310000 浙江省杭州市滨江区西兴街道江陵路*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 服务 守护 方法 装置 可读 存储 介质 | ||
本申请提供一种服务守护方法、装置及可读存储介质,涉及计算机技术领域。所述方法包括:在守护的目标服务的当前状态为停止状态时,判断该目标服务是否为共生服务;若该目标服务为共生服务,则确定该目标服务所在的共生服务组,然后向该共生服务组中的其他服务发送目标服务停止命令,以使该共生服务组中各服务的状态为停止状态;最后向该共生服务组中的各个服务发送目标服务启动命令,以启动该共生服务组,使该共生服务组中各个服务的目标状态的状态信息相同。由此,可保证共生服务之间目标状态的状态信息的一致性,避免由于共生服务的目标状态的状态信息不一致而导致软件系统异常。
技术领域
本申请涉及计算机技术领域,具体而言,涉及一种服务守护方法、装置及可读存储介质。
背景技术
由于业务需要,系统的多个服务之间往往需要保证某个状态的状态信息的一致性,这在当前的软件系统中十分常见。对于一个完善的软件系统,如果其中的多个服务需要保证某个状态的状态信息的一致性,那么,当其中一个服务该状态的状态信息发生改变时,其他服务会主动将该状态信息进行同步改变,这部分逻辑一般会在服务代码层面实现。但是,对于一些软件系统来说,由于种种限制无法在服务代码层面实现这种状态信息的同步机制。若在这种情况下,一组共生服务中的某个服务为停止状态,即,某个服务与该组共生服务中的其他服务所要维护的状态的状态信息不同,将导致软件系统异常。
发明内容
为了克服现有技术中的上述不足,本申请的目的在于提供一种服务守护方法、装置及可读存储介质,其能够保证共生服务之间所维护的状态的时时一致性,避免由于共生服务之间所维护的状态的状态信息不一致而导致软件系统异常。
本申请的实施例可以这样实现:
第一方面,本申请实施例提供一种服务守护方法,包括:
在守护的目标服务的当前状态为停止状态时,判断所述目标服务是否为共生服务;
若所述目标服务为共生服务,确定所述目标服务所在的共生服务组;
向所述共生服务组中的其他服务发送目标服务停止命令,以使所述共生服务组中各服务的状态为停止状态;
向所述共生服务组中的各个服务发送目标服务启动命令,以启动所述共生服务组,使所述共生服务组中各个服务的目标状态的状态信息相同。
在可选的实施方式中,在所述在守护的目标服务的当前状态为停止状态时,判断所述目标服务是否为共生服务之前,所述方法还包括:
通过守护线程获取守护的目标服务的服务锁;
若获取服务锁成功,则获取所述目标服务的当前状态。
在可选的实施方式中,所述方法还包括:
若所述目标服务的当前状态不是停止状态,则释放所述目标服务对应的服务锁;
若所述目标服务不是共生服务,则通过所述目标服务启动命令启动所述目标服务,并释放所述目标服务对应的服务锁。
在可选的实施方式中,所述向所述共生服务组中的其他服务发送目标服务停止命令,包括:
通过守护线程获取该共生服务组的守护锁;
若获取守护锁成功,则向所述共生服务组中的其他服务发送所述目标服务停止命令。
在可选的实施方式中,所述方法还包括:
若获取守护锁失败,则释放所述目标服务对应的服务锁。
在可选的实施方式中,所述向所述共生服务组中的各个服务发送目标服务启动命令,包括:
通过守护线程获取该共生服务组的状态锁;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浙江宇视科技有限公司,未经浙江宇视科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910604997.4/2.html,转载请声明来源钻瓜专利网。