[发明专利]一种消息处理方法、计算设备及储存介质在审
申请号: | 202110624782.6 | 申请日: | 2021-03-26 |
公开(公告)号: | CN113312189A | 公开(公告)日: | 2021-08-27 |
发明(设计)人: | 祁石 | 申请(专利权)人: | 统信软件技术有限公司 |
主分类号: | G06F9/54 | 分类号: | G06F9/54;G06F9/50;G06Q10/10;H04L12/58 |
代理公司: | 北京瀚方律师事务所 11774 | 代理人: | 周红力 |
地址: | 100176 北京市大兴区北京*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 消息 处理 方法 计算 设备 储存 介质 | ||
本发明公开了一种消息处理方法、计算设备及储存介质,该方法响应于用户操作,生成通知消息;查找与所生成的通知消息的消息类型相对应的观察者队列,访问已查找到的观察者队列之一,并利用所述观察者队列中的观察者处理所述通知消息;判断在处理所述通知消息的过程中是否生成新的观察者,若是,则将所述新的观察者加入当前未被访问的另一个已查找到的观察者队列中,若否,则继续执行判断在处理所述通知消息的过程中是否生成新的观察者的步骤。通过上述方法,在产生新观察者时错开正在访问的观察者队列,将新观察保存至与通知消息类型对应的另一观察者队列中,保证在处理通知消息的过程中观察者队列的稳定性。
本发明是2021年3月26日申请的发明专利2021103231578的分案申请。
技术领域
本发明涉及消息处理技术领域,特别涉及一种消息处理系统、计算设备及储存介质。
背景技术
应用程序(Application),是用户可以使用的各种程序设计语言,以及用各种程序设计语言编制的程序的集合。应用程序能够满足不同领域、不同问题的应用需求,因此,应用程序的使用越来越广泛。应用程序的设计开发中,包括多个功能模块,各功能模块之间会进行消息的相互通知。
目前,多通过在应用程序的中间层设计一个消息通知类,该类维护了两类队列,一类是通知消息队列,另一类是多个观察者队列,其中,通知消息队列包括多类型的通知消息,观察者队列消费消息队列中的通知消息,一个通知消息类型对应一个观察者队列,继承自通知消息的功能模块可以把自己注册进对应类型通知消息的观察者队列中,从而接收其他功能模块或本功能模块发送的通知消息。当检测到消息队列中有通知消息到来时,遍历该类型通知消息对应的观察者队列,依次调用观察者队列中的观察者针对此类通知消息的处理函数,完成通知消息的处理。但是,在观察者处理通知消息的过程中经常出现观察者队列不稳定的情况,容易造成应用程序崩溃。
为此,需要一种消息处理方法来解决上述技术方案中存在的应用程序在处理消息时不稳定的问题。
发明内容
为此,本发明提供一种消息处理方法,以力图解决或者至少缓解上面存在的问题。
根据本发明的一个方面,提供了一种消息处理方法,适于在计算设备中执行,所述方法包括步骤:
响应于用户操作,生成通知消息;
查找与所生成的通知消息的消息类型相对应的观察者队列,其中,每一类型的通知消息对应两个观察者队列;
访问已查找到的观察者队列之一,并利用所述观察者队列中的观察者处理所述通知消息;
判断在处理所述通知消息的过程中是否生成新的观察者,若是,则将所述新的观察者加入当前未被访问的另一个已查找到的观察者队列中,若否,则执行访问已查找到的观察者队列之一,并利用所述观察者队列中的观察者处理所述通知消息的步骤。
可选地,还包括步骤:
判断在利用所述观察者处理所述通知消息的过程中是否生成删除观察者的请求,若是,则判断待删除观察者是否在处理通知消息的观察者队列中,若否,则执行判断在利用所述观察者处理所述通知消息的过程中是否生成删除观察者的请求的步骤;
其中,所述判断待删除观察者是否在处理通知消息的观察者队列中的步骤包括:
判断待删除观察者是否在处理通知消息的观察者队列中,若是,将所述待删除观察者的节点设置为空,若否,则删除所述待删除观察者。
可选地,所述判断在处理所述通知消息的过程中是否生成新的观察者,若是,将所述新的观察者加入当前未被访问的另一个已查找到的观察者队列中的步骤包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于统信软件技术有限公司,未经统信软件技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110624782.6/2.html,转载请声明来源钻瓜专利网。