System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及软件开发,尤其涉及一种系统消息的发送方法、装置、设备及存储介质。
技术介绍
1、为了满足用户的使用需求,应用服务器中具有系统消息推送功能,可以满足所有在线用户能够自动获取系统消息,以及满足未在线的用户在登录后即可获取系统消息。为了实现及时推送功能,需要应用服务器与客户端建立一条持久化的通信链接,当有针对某一客户端的系统消息生成时,可以通过通信链接实现系统消息的实时推送。但是,目前一些分布式部署的应用服务器中使用了zuul网关,zuul网关会自动断开持久化通信链接,因此无法实现系统消息的实时推送。
技术实现思路
1、本申请提供一种系统消息的发送方法、装置、设备及存储介质,用以解决无法维持长链接的情况下,服务器如何向客户端及时发送系统消息的问题。
2、第一方面,本申请提出了一种系统消息的发送方法,该方法应用于应用服务器,包括:
3、接收客户端发送的查询请求;所述查询请求用于请求所述客户端对应的系统消息;
4、根据所述客户端的用户信息从redis数据库中查询对应的系统消息;其中,所述redis数据库中存储的系统消息为应用服务器在生成系统消息且持久化存储至后端数据库后,以用户信息为主键key进行备份存储的;所述后端数据库中已备份的系统消息的状态为第一状态;
5、向所述客户端发送查询到的系统消息,并在所述redis数据库中将已发送的系统消息删除。
6、基于上述方案,为了解决现有的应用服务器无法维持长链接向客户端推送系统消息
7、在一些实施例中,在向所述客户端发送查询到的系统消息之后,所述方法还包括:
8、记录已发送的系统消息的标识,并在所述后端数据库中将所述已发送的系统消息由第一状态修改标记为第二状态;
9、在当前查验周期到期后,获取所述当前查验周期内所述后端数据库中标记为第二状态的系统消息的第一组标识,以及获取所述当前查验周期内记录的从所述redis数据库中发出的系统消息的第二组标识;
10、根据所述第一组标识和所述第二组标识的对比结果,对所述redis数据库中的系统消息进行补充。
11、基于上述方案,在redis数据库中发生漏发或者漏备份的问题时,可以及时根据后端数据库中的数据对其进行补充。
12、在一些实施例中,所述根据所述第一组标识和所述第二组标识的对比结果,对所述redis数据库中的系统消息进行补充,具体包括:
13、对比所述第一组标识和所述第二组标识,确定所述第一组标识相较于第二组标识多出的至少一个标识;
14、根据所述至少一个标识从所述后端数据库中获取对应的系统消息,并将获取的系统消息重新备份存储至所述redis数据库。
15、在一些实施例中,在向所述客户端发送查询到的系统消息后,所述方法还包括:
16、在当前同步周期到期后,将在所述当前同步周期内所述redis数据库中备份存储的系统消息删除;其中,所述同步周期为所述查验周期的n倍,n为大于1的整数;
17、获取所述当前同步周期内所述后端数据库中标记为第一状态的系统消息,将获取的系统消息重新备份存储至所述redis数据库。
18、基于上述方案,周期性地统一后端数据库和redis数据库中未发送的系统消息,从而保障redis数据库中的系统消息的准确性。
19、在一些实施例中,所述查询请求为所述客户端响应于用户登录应用的操作发送的;和/或,所述查询请求为所述客户端在用户登录所述应用后周期性发送的;其中,所述应用为所述应用服务器对应的应用。
20、在一些实施例中,所述根据所述客户端的用户信息从所述redis数据库查询对应的系统消息,具体包括:
21、从所述redis数据库获取以所述客户端的用户信息为key的多条系统消息;
22、根据所述多条系统消息的时间戳,从所述多条系统消息中选取设定数量个系统消息作为所述查询到的系统消息。
23、由于系统消息具有期限性,过期的系统消息并不需要发送,所以基于上述方案,按照时间顺序选择一些系统消息进行发送,避免发送无效的系统消息。
24、第二方面,本申请提出了一种系统消息的发送装置,所述装置应用于应用服务器,或者所述装置为所述应用服务器,所述装置包括:
25、通信单元,用于接收客户端发送的查询请求;所述查询请求用于请求所述客户端对应的系统消息;
26、处理单元,用于根据所述客户端的用户信息从redis数据库中查询对应的系统消息;其中,所述redis数据库中存储的系统消息为应用服务器在生成系统消息且持久化存储至后端数据库后,以用户信息为主键key进行备份存储的;所述后端数据库中已备份的系统消息的状态为第一状态;
27、所述通信单元,还用于向所述客户端发送查询到的系统消息;
28、所述处理单元,还用于在所述redis数据库中将已发送的系统消息删除。
29、在一些实施例中,所述处理单元,还用于:
30、记录已发送的系统消息的标识,并在所述后端数据库中将所述已发送的系统消息由第一状态修改标记为第二状态;
31、在当前查验周期到期后,获取所述当前查验周期内所述后端数据库中标记为第二状态的系统消息的第一组标识,以及获取所述当前查验周期内记录的从所述redis数据库中发出的系统消息的第二组标识;
32、根据所述第一组标识和所述第二组标识的对比结果,对所述redis数据库中的系统消息进行补充。
33、在一些实施例中,所述处理单元,具体用于:
34、对比所述第一组标识和所述第二组标识,确定所述第一组标识相较于第二组标识多出的至少一个标识;
35、根据所述至少一个标识从所述后端数据库中获取对应的系统消息,并将获取的系统消息重新备份存储至所述redis数据库。
36、在一些实施例中,所述处理单元,还用于:
37、在当前同步周期到期后,将在所述当前同步周期内所述redis数据库中备份存储的系统消息删除;其中,所述同步周期为所述查验周期的n倍,n为大于1的整数;
38、获取所述当前同步周期内所述后端数据库中标记为第一状态的系统消息,将获取的系统消息重新备份存储至所述redis数据库。
39、在一些实施例中,所述查询请求为所述客户端响应于用户登录应用的操作发送的;和/或,所述查询请求为所述客户端在用户登录所述应用后周期性发送的;其中,所述应用为所述应本文档来自技高网...
【技术保护点】
1.一种系统消息的发送方法,其特征在于,所述方法应用于应用服务器,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,在向所述客户端发送查询到的系统消息之后,所述方法还包括:
3.根据权利要求2所述的方法,其特征在于,所述根据所述第一组标识和所述第二组标识的对比结果,对所述redis数据库中的系统消息进行补充,具体包括:
4.根据权利要求2或3所述的方法,其特征在于,在向所述客户端发送查询到的系统消息后,所述方法还包括:
5.根据权利要求1-3任一项所述的方法,其特征在于,所述查询请求为所述客户端响应于用户登录应用的操作发送的;和/或,所述查询请求为所述客户端在用户登录所述应用后周期性发送的;其中,所述应用为所述应用服务器对应的应用。
6.根据权利要求1-3任一项所述的方法,其特征在于,所述根据所述客户端的用户信息从所述redis数据库查询对应的系统消息,具体包括:
7.一种系统消息的发送装置,其特征在于,所述装置应用于应用服务器,或者所述装置为所述应用服务器,所述装置包括:
8.根据权利要
9.根据权利要求8所述的装置,其特征在于,所述处理单元,具体用于:
10.根据权利要求8或9所述的装置,其特征在于,所述处理单元,还用于:
11.根据权利要求7-9任一项所述的装置,其特征在于,所述查询请求为所述客户端响应于用户登录应用的操作发送的;和/或,所述查询请求为所述客户端在用户登录所述应用后周期性发送的;其中,所述应用为所述应用服务器对应的应用。
12.根据权利要求7-9任一项所述的装置,其特征在于,所述处理单元,具体用于:
13.一种电子设备,其特征在于,包括:
14.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被计算机执行时,使所述计算机执行权利要求1-6中任一项所述的方法。
15.一种计算机程序产品,其特征在于,所述计算机程序产品包括:计算机程序代码,当所述计算机程序代码在计算机上运行时,使得计算机执行上述权利要求1-6中任一项所述的方法。
...【技术特征摘要】
1.一种系统消息的发送方法,其特征在于,所述方法应用于应用服务器,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,在向所述客户端发送查询到的系统消息之后,所述方法还包括:
3.根据权利要求2所述的方法,其特征在于,所述根据所述第一组标识和所述第二组标识的对比结果,对所述redis数据库中的系统消息进行补充,具体包括:
4.根据权利要求2或3所述的方法,其特征在于,在向所述客户端发送查询到的系统消息后,所述方法还包括:
5.根据权利要求1-3任一项所述的方法,其特征在于,所述查询请求为所述客户端响应于用户登录应用的操作发送的;和/或,所述查询请求为所述客户端在用户登录所述应用后周期性发送的;其中,所述应用为所述应用服务器对应的应用。
6.根据权利要求1-3任一项所述的方法,其特征在于,所述根据所述客户端的用户信息从所述redis数据库查询对应的系统消息,具体包括:
7.一种系统消息的发送装置,其特征在于,所述装置应用于应用服务器,或者所述装置为所述应用服务器,所述装置包括:
8.根...
【专利技术属性】
技术研发人员:冀恒伟,
申请(专利权)人:中国建设银行股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。