一种消息重发方法及系统技术方案

技术编号:18356271 阅读:60 留言:0更新日期:2018-07-02 10:00
本发明专利技术提供一种消息重发方法及系统,方法包括:设置任一待重发消息对应的重发时间间隔,重发时间间隔随着历史重发次数的增大而增大;当达到重发时间间隔时,将任一待重发消息进行重发操作;获取重发操作对应的操作状态,当操作状态为失败时,更新历史重发次数,当历史重发次数小于重发次数阈值且重发队列中待重发消息的数量小于数量阈值,将任一待重发消息加入重发队列中;重复执行上述步骤,直至操作状态为成功或历史重发次数达到重发次数阈值或重发队列中待重发消息的数量达到数量阈值。该方法及系统能够避免无效的重发操作,有效提高了重发效率,在确保消息准确送达的同时,降低了系统的运行压力,有利于提高系统的整体性能。

【技术实现步骤摘要】
一种消息重发方法及系统
本专利技术涉及数据传输
,更具体地,涉及一种消息重发方法及系统。
技术介绍
在数据传输领域,以消息通知作为交互模式的应用系统越来越多。在消息传输时,由于双方系统或传输链路的故障,导致消息在传输过程中丢失而不能及时、可靠地送达。针对这一问题,形成了各种不同的消息重发机制,用于重新发送未成功送达的消息。然而,现有的重发机制实现比较复杂,需要将失败消息保存起来,然后再定时进行遍历重发,其并没有对发送失败的消息进行及时处理;同时对于重发失败的消息,现有的重发机制并没有采取有效措施确保重发消息的准确送达,导致往往需要进行多次重发,进而导致服务器积累了大量未发出的消息,一定程度上影响了服务器的性能,致使消息的整体重发效率低下,重发的资源成本和时间成本较高。有鉴于此,亟待提供一种能够提供消息重发效率的消息重发方法及系统。
技术实现思路
本专利技术为了克服现有技术中消息重发机制的消息重发效率低下的问题,提供一种消息重发方法及系统。一方面,本专利技术提供一种消息重发方法,包括:S1,对于重发队列中的任一待重发消息,设置所述任一待重发消息对应的重发时间间隔,所述重发时间间隔随着历史重发次数的增大而增大;S2,当达到所述重发时间间隔时,将所述任一待重发消息进行重发操作;S3,获取所述重发操作对应的操作状态,当所述操作状态为失败时,更新所述历史重发次数,当所述历史重发次数小于重发次数阈值且所述重发队列中待重发消息的数量小于数量阈值时,将所述任一待重发消息加入所述重发队列中;S4,重复执行所述步骤S1至S3,直至所述操作状态为成功或所述历史重发次数达到所述重发次数阈值或所述重发队列中待重发消息的数量达到所述数量阈值。优选地,所述步骤S1之前还包括:当所述重发队列中待重发消息的数量小于所述数量阈值时,将发送失败的消息加入所述重发队列中。优选地,所述步骤S1之前还包括:当所述重发队列中待重发消息的数量达到所述数量阈值时,将所述发送失败的消息存入缓存系统。优选地,所述步骤S3还包括:当所述操作状态为成功时,从所述重发队列中删除所述任一待重发消息。优选地,所述步骤S3还包括:当所述历史重发次数达到所述重发次数阈值或所述重发队列中待重发消息的数量达到所述数量阈值,将所述任一待重发消息存入所述缓存系统。优选地,定时从所述缓存系统中取出缓存消息,将所述缓存消息进行重新发送。优选地,获取所述缓存消息的发送状态,当所述缓存消息的发送状态为失败时,将所述缓存消息重新加入所述缓存系统中。一方面,本专利技术提供一种消息重发系统,包括:设置模块,用于对于重发队列中的任一待重发消息,设置所述任一待重发消息对应的重发时间间隔,所述重发时间间隔随着历史重发次数的增大而增大;重发模块,用于当达到所述重发时间间隔时,将所述任一待重发消息进行重发操作;失败处理模块,用于获取所述重发操作对应的操作状态,当所述操作状态为失败时,更新所述历史重发次数,当所述历史重发次数小于重发次数阈值且所述重发队列中待重发消息的数量小于数量阈值时,将所述任一待重发消息加入所述重发队列中。一方面,本专利技术提供一种计算机程序产品,,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,使所述计算机执行所述消息重发方法。一方面,本专利技术提供一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行所述消息重发方法。本专利技术提供的一种消息重发方法及系统,当消息发送失败时,能够将发送失败的消息加入消息队列中进行及时处理,通过设置重发队列中存储的待重发消息的数量阈值,能够有效控制重发队列中存储的数据量,避免数据量过大对重发效率的影响,同时针对每条待重发消息设置对应的重发时间间隔和重发次数阈值,且重发时间间隔随着历史重发次数的增大而增大,从而避免了无效的重发操作,有效提高了重发效率,在确保消息准确送达的同时,降低了系统的运行压力,有利于提高系统的整体性能。附图说明图1为本专利技术实施例的一种消息重发方法的整体流程示意图;图2为本专利技术实施例的一种消息重发系统的整体结构示意图。具体实施方式下面结合附图和实施例,对本专利技术的具体实施方式作进一步详细描述。以下实施例用于说明本专利技术,但不用来限制本专利技术的范围。图1为本专利技术实施例的一种消息重发方法的整体流程示意图,如图1所示,本专利技术提供一种消息重发方法,包括:S1,对于重发队列中的任一待重发消息,设置所述任一待重发消息对应的重发时间间隔,所述重发时间间隔随着历史重发次数的增大而增大;S2,当达到所述重发时间间隔时,将所述任一待重发消息进行重发操作;S3,获取所述重发操作对应的操作状态,当所述操作状态为失败时,更新所述历史重发次数,当所述历史重发次数小于重发次数阈值且所述重发队列中待重发消息的数量小于数量阈值时,将所述任一待重发消息加入所述重发队列中;S4,重复执行所述步骤S1至S3,直至所述操作状态为成功或所述历史重发次数达到所述重发次数阈值或所述重发队列中待重发消息的数量达到所述数量阈值。具体地,现有的重发机制通常将失败消息保存起来,然后再定时进行遍历重发,其并没有对发送失败的消息进行及时处理。本实施例中,通过建立额外的重发队列,能够将发送失败的消息加入重发队列中进行及时处理。对于重发队列中的待重发消息,执行重发的具体过程如下:将发送失败的消息加入重发队列形成待重发消息,针对每条待重发消息,设置每条待重发消息的重发时间间隔,其中重发时间间隔用于表明下次重发的时间,将当前时间加上重发时间间隔即可确定下次重发的时间;重发时间间隔并不是固定不变的,随着历史重发次数的增大,重发时间间隔也增大。即,对于每条待重发消息而言,下一次进行重发的时间间隔比上一次进行重发的时间间隔更大,进而可以有效避免无效的重发。其中历史重发次数用于表明当前针对该条待重发消息已经重发的次数,在发送失败的消息第一次加入重发队列形成待重发消息时,该待重发消息的历史重发次数为0,即表明该条待重发消息为等待重发的状态。进一步地,在上述技术方案的基础上,对于重发队列中的任一待重发消息,当经过对应的重发时间间隔后,即达到下次重发的时间点时,将待重发消息从重发队列中取出,并执行重发操作。进一步地,检测上述重发操作对应的操作状态,即确定重发操作是否成功,当重发操作不成功时,即对应的操作状态为失败,此时更新历史重发次数,将历史重发次数加1。此外,对于重发队列中的每条待重发消息,预先设置了每条待重发消息的重发次数阈值,即确定每条待重发消息最多允许重发的次数,同时对于重发队列,预先设置了重发队列存储的待重发消息的数量阈值。故而,在上述待重发消息对应的操作状态为失败的情况下,将更新的历史重发次数与重发次数阈值进行比对,同时计算当前待重发队列中待重发消息的数量,并将当前待重发队列中待重发消息的数量与数量阈值进行比对,当且仅当更新后的历史重发次数小于重发次数阈值,且重发队列中待重发消息的数量小于数量阈值时,将待重发消息重新加入重发队列中。进一步地,在上述待重发消息重新加入重发队列的同时,还将重新设置该条待重发消息对应的重发时间间隔,即重复执行上述方法步骤,具体方法步骤此处不再赘述。在重复执行上述本文档来自技高网...
一种消息重发方法及系统

【技术保护点】
1.一种消息重发方法,其特征在于,包括:S1,对于重发队列中的任一待重发消息,设置所述任一待重发消息对应的重发时间间隔,所述重发时间间隔随着历史重发次数的增大而增大;S2,当达到所述重发时间间隔时,将所述任一待重发消息进行重发操作;S3,获取所述重发操作对应的操作状态,当所述操作状态为失败时,更新所述历史重发次数,当所述历史重发次数小于重发次数阈值且所述重发队列中待重发消息的数量小于数量阈值时,将所述任一待重发消息加入所述重发队列中;S4,重复执行所述步骤S1至S3,直至所述操作状态为成功或所述历史重发次数达到所述重发次数阈值或所述重发队列中待重发消息的数量达到所述数量阈值。

【技术特征摘要】
1.一种消息重发方法,其特征在于,包括:S1,对于重发队列中的任一待重发消息,设置所述任一待重发消息对应的重发时间间隔,所述重发时间间隔随着历史重发次数的增大而增大;S2,当达到所述重发时间间隔时,将所述任一待重发消息进行重发操作;S3,获取所述重发操作对应的操作状态,当所述操作状态为失败时,更新所述历史重发次数,当所述历史重发次数小于重发次数阈值且所述重发队列中待重发消息的数量小于数量阈值时,将所述任一待重发消息加入所述重发队列中;S4,重复执行所述步骤S1至S3,直至所述操作状态为成功或所述历史重发次数达到所述重发次数阈值或所述重发队列中待重发消息的数量达到所述数量阈值。2.根据权利要求1所述的方法,其特征在于,所述步骤S1之前还包括:当所述重发队列中待重发消息的数量小于所述数量阈值时,将发送失败的消息加入所述重发队列中。3.根据权利要求1所述的方法,其特征在于,所述步骤S1之前还包括:当所述重发队列中待重发消息的数量达到所述数量阈值时,将所述发送失败的消息存入缓存系统。4.根据权利要求1所述的方法,其特征在于,所述步骤S3还包括:当所述操作状态为成功时,从所述重发队列中删除所述任一待重发消息。5.根据权利要求3所述的方法,其特征在于,所述步骤S3还包括:当所述历史重发次数达到所述重发次数阈值或所述重发队列中待重发消息...

【专利技术属性】
技术研发人员:赵玉贤
申请(专利权)人:链家网北京科技有限公司
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1