消息通知方法及装置制造方法及图纸

技术编号:21899054 阅读:16 留言:0更新日期:2019-08-17 18:27
本公开提供一种消息通知方法及装置。该消息通知方法包括:接收通知消息请求,所述通知消息请求中包括消息;将通知消息请求中的消息传送至信道中排队并发送;确认消息是否发送成功;如果消息发送成功,则将消息的状态更新为成功状态,如果消息未发送成功,则将消息的状态更新为初始状态;根据消息的状态对消息进行重新发送,从而有效减少消息发送延迟,同时提高消息发送的可靠性。

Message Notification Method and Device

【技术实现步骤摘要】
消息通知方法及装置
本公开涉及计算机
更具体地,本公开涉及一种消息通知方法及装置。
技术介绍
对于需要进行消息通知的操作(例如,支付、退款等操作),为了性能考虑在消息通知时一般都是采用异步服务模型,在操作成功之后通过异步回调的方式通知业务方。然而,由于网络环境与系统的复杂性,而可能会出现未成功通知业务方的情况,从而需要有消息重发的能力来进行补偿。包含消息通知的业务往往会根据职能,被划分为很多模块或单元,然而各个模块或单元之间在进行信息交互时也不可避免出现消息发送不成功而导致数据不一致的现象,从而也需要一种通用的消息通知服务来进行一定程度的补偿,以达到数据的最终一致性。
技术实现思路
本公开的示例性实施例在于提供一种消息通知方法及装置,以减少消息发送延迟,同时提高消息发送的可靠性。根据本公开的示例性实施例,提供一种消息通知方法,包括:接收通知消息请求,所述通知消息请求中包括消息;将通知消息请求中的消息传送至信道中排队并发送;确认所述消息是否发送成功;如果所述消息发送成功,则将所述消息的状态更新为成功状态,如果所述消息未发送成功,则将所述消息的状态更新为初始状态;根据所述消息的状态对所述消息进行重新发送。可选地,接收通知消息请求的步骤之后,所述消息通知方法还可包括:对通知消息请求中的消息进行分库分表并且进行持久化。可选地,根据所述消息的状态对所述消息进行重新发送的步骤可包括:按照预设频率扫描通过分库分表得到的消息表中处于初始状态的消息,将扫描到的处于初始状态的消息的状态更新为等待处理状态;将处于等待处理状态的消息传送至信道中排队;从排队的队列中获取消息,将获取的消息的状态更新为正在处理状态;对处于正在处理状态的消息进行重新发送。可选地,根据所述消息的状态对所述消息进行重新发送的步骤之后,所述消息通知方法还可包括:再次确认所述消息是否发送成功;如果所述消息发送成功,则将所述消息的状态更新为成功状态,如果所述消息未发送成功,则判断所述消息发送次数是否超过配置的最大重试次数;如果超过最大重试次数,则将所述消息的状态置更新为失败状态,如果未超过最大重试次数,则跳转至将所述消息的状态更新为初始状态的步骤,并根据所述消息的状态对所述消息进行重新发送,直至确认发送成功或所述消息的状态为失败状态。可选地,将所述消息的状态更新为初始状态的步骤可包括:更新所述消息的发送相关信息,其中,所述发送相关信息至少包括发送次数、下次发送时间中的一项或更多项。可选地,所述消息通知方法还可包括:查找异常消息并将查找出的异常消息的状态更新为初始状态。可选地,查找异常消息的步骤可包括:定时扫描通过分库分表得到的消息表,查找处于处理中状态并且距离最后操作时间的时长大于预设时长的消息,将查找出的消息确定为异常消息,其中,所述处理中状态包括等待处理状态和正在处理状态。根据本公开的示例性实施例,提供一种消息通知装置,包括:接收通知消息请求,所述通知消息请求中包括消息;将通知消息请求中的消息传送至信道中排队并发送;确认所述消息是否发送成功;如果所述消息发送成功,则将所述消息的状态更新为成功状态,如果所述消息未发送成功,则将所述消息的状态更新为初始状态,消息重发单元,被配置为根据所述消息的状态对所述消息进行重新发送,和服务注册与发现单元,被配置为进行服务注册和服务发现。可选地,所述消息通知装置还可包括:持久化单元,被配置为对通知消息请求中的消息进行分库分表并且进行持久化。可选地,消息重发单元可被配置为:根据由服务注册与发现单元进行的服务发现的结果,从通过分库分表得到的消息表中确定需要扫描的消息表;按照预设频率扫描确定的消息表中处于初始状态的消息,将扫描到的处于初始状态的消息的状态更新为等待处理状态;将处于等待处理状态的消息传送至信道中排队;从排队的队列中获取消息,将获取的消息的状态更新为正在处理状态;对处于正在处理状态的消息进行重新发送。可选地,消息重发单元还可被配置为:再次确认所述消息是否发送成功;如果所述消息发送成功,则将所述消息的状态更新为成功状态,如果所述消息未发送成功,则判断所述消息发送次数是否超过配置的最大重试次数;如果超过最大重试次数,则将所述消息的状态置更新为失败状态,如果未超过最大重试次数,则重新将所述消息的状态更新为初始状态,并根据所述消息的状态对所述消息进行重新发送,直至确认发送成功或所述消息的状态为失败状态。可选地,消息重发单元可被配置为:更新所述消息的发送相关信息,其中,所述发送相关信息至少包括发送次数、下次发送时间中的一项或更多项。可选地,所述消息通知装置还可包括:异常监控单元,被配置为查找异常消息并将查找出的异常消息的状态更新为初始状态。可选地,异常监控单元可被配置为:根据由服务注册与发现单元进行的服务发现的结果,从通过分库分表得到的消息表中确定监控的消息表;定时扫描确定的消息表,查找处于处理中状态并且距离最后操作时间的时长大于预设时长的消息,将查找出的消息确定为异常消息,其中,所述处理中状态包括等待处理状态和正在处理状态。根据本公开的示例性实施例,提供一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序被处理器执行时,实现根据本公开的消息通知方法。根据本公开的示例性实施例,提供一种电子装置,包括:处理器;存储器,存储有计算机程序,当所述计算机程序被处理器执行时,实现根据本公开的消息通知方法。根据本公开示例性实施例的消息通知方法及装置,接收通知消息请求,所述通知消息请求中包括消息;将通知消息请求中的消息传送至信道中排队并发送;确认消息是否发送成功;如果消息发送成功,则将消息的状态更新为成功状态,如果消息未发送成功,则将消息的状态更新为初始状态;根据消息的状态对消息进行重新发送,从而有效减少消息发送延迟,同时提高消息发送的可靠性。将在接下来的描述中部分阐述本公开总体构思另外的方面和/或优点,还有一部分通过描述将是清楚的,或者可以经过本公开总体构思的实施而得知。附图说明通过下面结合示例性地示出实施例的附图进行的描述,本公开示例性实施例的上述和其他目的和特点将会变得更加清楚,其中:图1示出根据本公开的一个示例性实施例的消息通知方法的流程图;图2示出根据本公开的另一示例性实施例的消息通知方法的流程图;图3示出根据本公开的一个示例性实施例的消息通知装置的框图;图4示出根据本公开的另一示例性实施例的消息通知装置的框图;图5示出根据本公开的示例性实施例的消息通知装置的示意图;图6示出根据本公开示例性实施例的电子装置的示意图。具体实施方式现将详细参照本公开的示例性实施例,所述实施例的示例在附图中示出,其中,相同的标号始终指的是相同的部件。以下将通过参照附图来说明所述实施例,以便解释本公开。图1示出根据本公开的一个示例性实施例的消息通知方法的流程图。所述消息通知方法可以由消息通知装置来执行,所述消息通知装置可以采用软件和/或硬件的方式实现,所述消息通知装置可配置于客户端中,例如移动终端的客户端,也可以被多个客户端共享。所述消息通知方法可以用于例如,但不限于,诸如支付、退款等操作的消息通知。参照图1,在步骤S101,接收通知消息请求,所述通知消息请求中包括消息。生产者和消费者模式一种传输数据的模式,该模式通过平衡生产本文档来自技高网...

【技术保护点】
1.一种消息通知方法,包括:接收通知消息请求,所述通知消息请求中包括消息;将通知消息请求中的消息传送至信道中排队并发送;确认所述消息是否发送成功;如果所述消息发送成功,则将所述消息的状态更新为成功状态,如果所述消息未发送成功,则将所述消息的状态更新为初始状态;根据所述消息的状态对所述消息进行重新发送。

【技术特征摘要】
1.一种消息通知方法,包括:接收通知消息请求,所述通知消息请求中包括消息;将通知消息请求中的消息传送至信道中排队并发送;确认所述消息是否发送成功;如果所述消息发送成功,则将所述消息的状态更新为成功状态,如果所述消息未发送成功,则将所述消息的状态更新为初始状态;根据所述消息的状态对所述消息进行重新发送。2.根据权利要求1所述的消息通知方法,其中,接收通知消息请求的步骤之后,还包括:对通知消息请求中的消息进行分库分表并且进行持久化。3.根据权利要求2所述的消息通知方法,其中,根据所述消息的状态对所述消息进行重新发送的步骤包括:按照预设频率扫描通过分库分表得到的消息表中处于初始状态的消息,将扫描到的处于初始状态的消息的状态更新为等待处理状态;将处于等待处理状态的消息传送至信道中排队;从排队的队列中获取消息,将获取的消息的状态更新为正在处理状态;对处于正在处理状态的消息进行重新发送。4.根据权利要求2所述的消息通知方法,其中,根据所述消息的状态对所述消息进行重新发送的步骤之后,还包括:再次确认所述消息是否发送成功;如果所述消息发送成功,则将所述消息的状态更新为成功状态,如果所述消息未发送成功,则判断所述消息发送次数是否超过配置的最大重试次数;如果超过最大重试次数,则将所述消息的状态置更新为失败状态,如果未超过最大重试次数,则跳转至将所述消息的状态更新为初始状态的步骤,并根据所述消息的状态对所述消息进行重新发送,直至确认发送成功或所述消息的状态为失败状态。5.根据权利要求4所述的消息通知方法,其中,将所述消息的状态更新为初始状态的步骤包括:更新所述消息的发送相关信息,其中,所述发送相关信息至少包括发送次数、下次发送时间中的一项或更多项。6.根据权利要求2-5任一项所述的消息通知方法,还包括:查找异常消息并将查找出的异常消息的状态更新为初始状态。7.根据权利要求6所述的消息通知方法,其中,查找异常消息的步骤包括:定时扫描通过分库分表得到的消息表,查找处于处理中状态并且距离最后操作时间的时长大于预设时长的消息,将查找出的消息确定为异常消息,其中,所述处理中状态包括等待处理状态和正在处理状态。8.一种消息通知装置,包括:消息受理单元,被配置为:接收通知消息请求,所述通知消息请求中包括消息;将通知消息请求中的消息传送至信道中排队并发送;确认所述消息是否发送成功;如果所述消息发送成功,则将所述消息的状态更新为成功状态,如果所述...

【专利技术属性】
技术研发人员:袁冲周文张磊范兆冰张树凡焦久隆
申请(专利权)人:北京字节跳动网络技术有限公司
类型:发明
国别省市:北京,11

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

1