System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及计算机,特别涉及一种消息发送方法、系统、装置和介质。
技术介绍
1、现有技术中本机的通知消息发送至服务器端后,本机通常会通过监测服务器返回的状态来判断通知消息是否发送成功。但是,由于网络波动、服务器繁忙、服务器宕机等多种原因,会存在服务器在一段时间内无法接收到本机发送的通知消息。服务器异常会导致多种情况的发生,比如,当本机发送消息后未接收到服务器反馈的成功信息时会触发重发机制,重发机制会反复重发造成系统资源的浪费;本机在一段时间未收到服务器的反馈消息会默认消息已经发送成功,造成消息丢失;消息已经成功发送但服务器未反馈时,会触发重发机制,导致资源的浪费,服务器异常时会造成本机系统资源的浪费和消息丢失。
2、现有技术中,发送消息后依靠服务器反馈的信息判断消息是否成功发送,但是在网络状况不佳或者服务器负载过大时,会造成了系统资源的浪费,导致消息发送可靠性较低。
3、因此,亟需一种方法解决消息发送可靠性较低的问题。
技术实现思路
1、基于此,有必要针对上述技术问题,提供一种消息发送方法、系统、装置和介质,该方法能够解决消息发送可靠性较低的问题。
2、本专利技术采用下述技术方案:
3、本专利技术提供了一种消息发送方法,包括:
4、响应于消息的发送指令,获取服务器接收消息的异常等级;
5、根据异常等级,确定向服务器发送消息的发送频率,并按照发送频率,将消息队列中的消息发送至服务器;
6、在未接收到
7、优选地,获取服务器接收消息的异常等级,具体包括:
8、统计预设时长内向服务器发送消息错误的次数;
9、根据次数,确定服务器接收消息的异常等级。
10、优选地,根据异常等级,确定向服务器发送消息的发送频率,并按照发送频率,将消息队列中的消息发送至服务器,具体包括:
11、若异常等级为异常,则确定发送频率为第一频率,并按照第一频率将消息队列中的消息以先进先出的顺序发送至服务器;
12、若异常等级为正常,则确定发送频率为第二频率,并按照第二频率将消息队列中的消息以先进先出的顺序发送至服务器。
13、优选地,根据向服务器发送消息未成功的次数,确定消息的存储策略,具体包括:
14、根据向服务器发送消息未成功的次数,确定消息的错误类型;
15、在错误类型为短期错误的情况下,确定存储策略为将消息置于消息队列顶部;
16、在错误类型为长期错误的情况下,确定存储策略为将消息置于消息队列底部。
17、优选地,该方法还包括:
18、当处于长期错误的消息的数量大于预设错误阈值时,将服务器的异常等级调整为异常。
19、优选地,该方法还包括:
20、接收发送方发送的待发送消息;
21、检测消息队列的内存,若消息队列的内存大于最大承载内存,则将待发送消息持久化存储;
22、若消息队列的内存小于或等于最大承载内存,则将待发送消息存储至消息队列。
23、优选地,该方法还包括:
24、在消息队列的内存小于预设存储内存,将持久化存储的待发送消息存储至消息队列。
25、本专利技术提供了一种消息发送系统,该系统包括:发送模块、监测模块和重发模块;
26、发送模块,用于响应于消息的发送指令,获取服务器接收消息的异常等级;根据异常等级,确定向服务器发送消息的发送频率,并按照发送频率,将消息队列中的消息发送至服务器;
27、监测模块,用于统计预设时长内向服务器发送消息错误的次数;根据次数,确定服务器接收消息的异常等级;在未接收到服务器反馈的消息发送成功的信息之后,根据向服务器发送消息未成功的次数,确定消息的存储策略;
28、重发模块,用于按照消息的存储策略,将消息存储至消息队列中,以使消息再次发送至服务器。
29、本专利技术提供了一种消息发送装置,包括:
30、获取模块,用于响应于消息的发送指令,获取服务器接收消息的异常等级;
31、第一发送模块,用于根据异常等级,确定向服务器发送消息的发送频率,并按照发送频率,将消息队列中的消息发送至服务器;
32、第二发送模块,用于在未接收到服务器反馈的消息发送成功的信息之后,根据向服务器发送消息未成功的次数,确定消息的存储策略,并按照消息的存储策略,将消息存储至消息队列中,以使消息再次发送至服务器。
33、本专利技术提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述一种消息发送方法。
34、本专利技术提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述一种消息发送方法。
35、本专利技术采用的上述至少一个技术方案能够达到以下有益效果:
36、本专利技术中,在向服务器发送消息之前,会先获取服务器接收消息的异常等级,根据服务器的异常等级,确定向服务器发送消息的发送频率,按照该发送频率向服务器发送消息,这样,能够合理控制消息发送频率,在服务器异常时,及时调整发送频率,能够减少数据丢失的风险,提高了消息发送的可靠性;并且,在未接收到服务器反馈的消息发送成功的信息之后,根据向服务器发送消息未成功的次数,确定消息的存储策略,这样,可以按照存储策略将消息存储至消息队列中,能够使该消息在适当时机发送至服务器,从而进一步提高了消息发送的可靠性。
本文档来自技高网...【技术保护点】
1.一种消息发送方法,其特征在于,包括:
2.如权利要求1所述的方法,其特征在于,所述获取服务器接收消息的异常等级,具体包括:
3.如权利要求1所述的方法,其特征在于,所述根据所述异常等级,确定向所述服务器发送消息的发送频率,并按照所述发送频率,将消息队列中的消息发送至所述服务器,具体包括:
4.如权利要求1所述的方法,其特征在于,所述根据向所述服务器发送所述消息未成功的次数,确定所述消息的存储策略,具体包括:
5.如权利要求4所述的方法,其特征在于,所述方法还包括:
6.如权利要求1所述的方法,其特征在于,所述方法还包括:
7.如权利要求6所述的方法,其特征在于,所述方法还包括:
8.一种消息发送系统,其特征在于,所述系统包括:发送模块、监测模块和重发模块;
9.一种消息发送装置,其特征在于,包括:
10.一种计算机可读存储介质,其特征在于,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1~7任一项所述的方法。
【技术特征摘要】
1.一种消息发送方法,其特征在于,包括:
2.如权利要求1所述的方法,其特征在于,所述获取服务器接收消息的异常等级,具体包括:
3.如权利要求1所述的方法,其特征在于,所述根据所述异常等级,确定向所述服务器发送消息的发送频率,并按照所述发送频率,将消息队列中的消息发送至所述服务器,具体包括:
4.如权利要求1所述的方法,其特征在于,所述根据向所述服务器发送所述消息未成功的次数,确定所述消息的存储策略,具体包括:
5.如权利要求4...
【专利技术属性】
技术研发人员:陈丽燕,陈慧灵,严坚,
申请(专利权)人:温州大学大数据与信息技术研究院,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。