System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种消息处理方法及系统技术方案_技高网

一种消息处理方法及系统技术方案

技术编号:39941412 阅读:6 留言:0更新日期:2024-01-08 22:35
本发明专利技术公开了一种消息处理方法及系统,本发明专利技术将消息和消息的上传状态写入第一持久化表中,将消息和消息的上传状态持久化到生产端的本地存储,确保异常重连重发消息的可追溯,将消息和消息对应的方法的执行状态写入预先创建的第二持久化表中,将消息和消息对应的方法的执行状态持久化到消费端的本地存储,确保异常重新执行方法的可追溯。此外,对第一持久化表中上传失败的消息进行重新上传,对第二持久化表中执行失败的消息,重新执行该消息对应的方法,避免由于网络或设备异常导致无法执行消息对应的方法的问题,确保消息对应的功能能够实现。

【技术实现步骤摘要】

本专利技术涉及计算机应用技术,尤其涉及一种消息处理方法及系统


技术介绍

1、在互联网和软件领域,消息队列(message queue,mq)已经成为一种常用的技术手段。消息队列的底层设计原理是“生产端-消费端”模式。消息的来源是生产端,生产端(或称为生产端程序)源源不断的生产消息并将生产的消息放入消息队列,消费端(或称为消费端程序)则从消息队列中获取消息进行消费。消息队列在解耦、异步和削峰等问题的解决上,起到了很大的作用。

2、现有技术中,生产端在向消息队列服务器上传消息时,由于网络或设备异常,可能出现消息上传失败的问题。这些上传失败的信息无法抵达消费端,导致消费端无法执行相应的动作,无法实现相应的功能。


技术实现思路

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、应当理解,本部分所描述的内容并非旨在标识本专利技术的实施例的关键或重要特征,也不用于限制本专利技术的范围。本专利技术的其它特征将通过以下的说明书而变得容易理解。

本文档来自技高网...

【技术保护点】

1.一种消息处理方法,其特征在于,包括:

2.根据权利要求1所述的消息处理方法,其特征在于,生产端将产生的消息上传至消息队列服务器,包括:

3.根据权利要求1所述的消息处理方法,其特征在于,所述生产端关联所述消息和所述消息的上传状态,包括:

4.根据权利要求1所述的消息处理方法,其特征在于,所述生产端关联所述消息和所述消息的上传状态,包括:

5.根据权利要求1-4任一所述的消息处理方法,其特征在于,所述生产端从所述第一持久化表中查找上传状态为上传失败的第一目标消息,并将所述第一目标消息重新上传至所述消息队列服务器,包括:

6.根据权利要求1-4任一所述的消息处理方法,其特征在于,所述生产端与所述消费端分属于不同的设备,绕过所述消息队列服务器,将所述第一目标消息发送至所述消费端,包括:

7.根据权利要求1-4任一所述的消息处理方法,其特征在于,所述生产端与所述消费端属于同一设备,绕过所述消息队列服务器,将所述第一目标消息发送至所述消费端,包括:

8.根据权利要求1-4任一所述的消息处理方法,其特征在于,所述消费端从所述消息队列服务器中获取所述消息,执行所述消息对应的方法,包括:

9.根据权利要求1-4任一所述的消息处理方法,其特征在于,所述消费端从所述第二持久化表中查找执行状态为执行失败的第二目标消息,并重新执行所述第二目标消息对应的方法,包括:

10.一种消息处理系统,其特征在于,用于实现权利要求1-9任一所述消息处理方法,消息处理系统包括生产端、消息队列服务器和消费端,所述生产端与所述消费端通过所述消息队列服务器连接。

...

【技术特征摘要】

1.一种消息处理方法,其特征在于,包括:

2.根据权利要求1所述的消息处理方法,其特征在于,生产端将产生的消息上传至消息队列服务器,包括:

3.根据权利要求1所述的消息处理方法,其特征在于,所述生产端关联所述消息和所述消息的上传状态,包括:

4.根据权利要求1所述的消息处理方法,其特征在于,所述生产端关联所述消息和所述消息的上传状态,包括:

5.根据权利要求1-4任一所述的消息处理方法,其特征在于,所述生产端从所述第一持久化表中查找上传状态为上传失败的第一目标消息,并将所述第一目标消息重新上传至所述消息队列服务器,包括:

6.根据权利要求1-4任一所述的消息处理方法,其特征在于,所述生产端与所述消费端分属于不同的设备,绕过所述消息队列服务器,将所述第一目标消...

【专利技术属性】
技术研发人员:谢方敏周峰郭陟马荣茂梁伟乐
申请(专利权)人:广州方舟信息科技有限公司
类型:发明
国别省市:

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

1