一种消息处理方法和装置制造方法及图纸

技术编号:29132724 阅读:33 留言:0更新日期:2021-07-02 22:28
本发明专利技术公开了一种消息处理方法和装置,涉及计算机技术领域。该方法的具体实施方式包括:接收业务端发送的一个或多个待处理消息;针对每一个所述待处理消息:根据所述待处理消息以及多个定时器,构建所述待处理消息对应的多个消息处理时间分别对应的多个第一任务;所述多个定时器分别指示了所述多个消息处理时间;根据所述消息处理时间,执行所述第一任务,以将所述第一任务的处理结果发送给订阅端。该实施方式能够保证数据一致性,确保消息发送成功,且独立于业务端,降低与业务端的耦合性,扩展性及适应性极强,可应用于各种场景,提升用户体验。

【技术实现步骤摘要】
一种消息处理方法和装置
本专利技术涉及计算机
,尤其涉及一种消息处理方法和装置。
技术介绍
在消息传递场景下,会涉及到多方的后端交互。例如,对于支付订单来说,接收待支付订单的第一后端需监控订单的支付情况,当超时未支付时,向服务提供者对应的第二后端发送取消订单的消息,或者订单支付成功后向第二后端发送支付成功的消息。现有技术中,上述消息可能存在发送失败的情况。例如,第一后端在将订单支付成功后的消息通知给第三后端时,可能存在多次发送仍然失败的情况,这可能导致订单无法按时完成。
技术实现思路
有鉴于此,本专利技术实施例提供一种消息处理方法和装置,能够保证数据一致性,确保消息发送成功,且独立于业务端,降低与业务端的耦合性,扩展性及适应性极强,可应用于各种场景,提升用户体验。进一步地,使得业务端可以专注于自身业务逻辑开发,提高其开发效率,并且可实现消息存储、通知状态记录、重试策略、事件重演、报警等辅助功能。更进一步地,支持跨平台、跨语言的调用和HTTP、JSF等协议的调用,灵活性较强。为实现上述目的,根据本专利技术实施例的一个方面,提供了一种消息处理方法,包括:接收业务端发送的一个或多个待处理消息;针对每一个所述待处理消息:根据所述待处理消息以及多个定时器,构建所述待处理消息对应的多个消息处理时间分别对应的多个第一任务;所述多个定时器分别指示了所述多个消息处理时间;根据所述消息处理时间,执行所述第一任务,以将所述第一任务的处理结果发送给订阅端。可选地,所述根据所述消息处理时间,执行所述第一任务,将所述第一任务的处理结果发送给订阅端,包括:针对所述多个第一任务,执行:A:确定所述多个消息处理时间中距离当前时间最近的目标消息处理时间;当所述定时器记录的时间指示达到所述目标消息处理时间时,执行与所述目标消息处理时间对应的目标任务;响应于所述订阅端对所述目标任务的负反馈,执行步骤A;响应于所述订阅端对所述目标任务的正反馈,确定所述消息处理成功。可选地,通过MQ集群接收所述待处理消息;通过kafka集群的第一线程,根据所述待处理消息,分别生成所述一个或多个待处理消息分别对应的一个或多个第二任务,并将所述一个或多个第二任务存储至第一队列;通过所述kafka集群的第二线程,根据预设周期,从所述第一队列中提取所述第二任务,并生成提取的所述第二任务对应的多个第一任务。可选地,还包括:预先配置多组定时器,每一组定时器包括多个定时器,且不同组的定时器分别对应的起始时间不同;所述生成提取的所述第二任务对应的多个第一任务,包括:根据所述第二任务所对应的待处理消息的类型,确定所述第二任务对应的定时器组;根据确定出的所述定时器组中的多个定时器,生成所述第二任务对应的多个第一任务。可选地,还包括:接收业务端发送的当前消息;确定所述第一任务和所述第二任务中,是否存在与所述当前消息对应同一标识的目标任务;如果是,删除所述目标任务,并生成所述当前消息对应的第二任务。可选地,还包括:响应于所述订阅端对所述多个第一任务中的最后一个目标任务的负反馈,将所述待处理消息存储至第二队列;当所述第二队列中的消息总数量大于预设阈值时,向所述业务端发送关于处理失败的消息。可选地,还包括:响应于所述业务端发送的关于重新执行所述待处理消息的消息,从所述第二队列中提取所述待处理消息,并根据所述待处理消息以及多个定时器,构建多个第一任务。可选地,当所述多个定时器中存在指示同一消息处理时间的至少两个定时器时,针对同一消息处理时间对应的所述至少两个定时器设置锁,使得同一消息处理时间下,所述至少两个定时器分别对应的至少两个第一任务中,仅有一个第一任务被执行。可选地,所述被执行的第一任务为定时器正常运行的任务。根据本专利技术实施例的再一个方面,提供了一种消息处理装置,包括:接收模块,用于接收业务端发送的一个或多个待处理消息;任务构建模块,用于针对每一个所述待处理消息:根据所述待处理消息以及多个定时器,构建所述待处理消息对应的多个消息处理时间分别对应的多个第一任务;所述多个定时器分别指示了所述多个消息处理时间;任务执行模块,用于根据所述消息处理时间,执行所述第一任务,以将所述第一任务的处理结果发送给订阅端。根据本专利技术实施例的另一个方面,提供了一种消息处理系统,包括:业务端、消息处理端和订阅端;所述业务端向所述消息处理端发送一个或多个待处理消息;所述消息处理端接收到所述一个或多个待处理消息后,针对每一个所述待处理消息:根据所述待处理消息以及多个定时器,构建所述待处理消息对应的多个消息处理时间分别对应的多个第一任务;所述多个定时器分别指示了所述多个消息处理时间;所述消息处理端还根据所述消息处理时间,执行所述第一任务,以将所述第一任务的处理结果发送给所述订阅端。根据本专利技术实施例的再一个方面,提供了一种消息处理电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本专利技术提供的消息处理方法。根据本专利技术实施例的还一个方面,提供了一种计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现本专利技术提供的消息处理方法。上述专利技术中的一个实施例具有如下优点或有益效果:因为采用基于MQ集群、kafka构架和redis队列组合构建独立的消息处理系统的技术手段,所以克服了多方后端交互可能存在多次发送仍然失败,导致业务无法按时完成的技术问题,进而达到保证数据一致性,确保消息发送成功,且独立于业务端,降低与业务端的耦合性,扩展性及适应性极强,可应用于各种场景,提升用户体验的技术效果。上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。附图说明附图用于更好地理解本专利技术,不构成对本专利技术的不当限定。其中:图1是适于应用于本专利技术实施例的消息处理方法或消息处理装置的示例性系统架构图;图2是根据本专利技术实施例的消息处理方法的主要流程的示意图;图3是根据本专利技术实施例的消息处理装置的主要模块的示意图;图4(a)是根据本专利技术实施例的消息处理系统的示意图一;图4(b)是根据本专利技术实施例的消息处理系统的示意图二;图5是适于用来实现本专利技术实施例的终端设备或服务器的计算机系统的结构示意图。具体实施方式以下结合附图对本专利技术的示范性实施例做出说明,其中包括本专利技术实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本专利技术的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功本文档来自技高网...

【技术保护点】
1.一种消息处理方法,其特征在于,包括:/n接收业务端发送的一个或多个待处理消息;/n针对每一个所述待处理消息:/n根据所述待处理消息以及多个定时器,构建所述待处理消息对应的多个消息处理时间分别对应的多个第一任务;所述多个定时器分别指示了所述多个消息处理时间;/n根据所述消息处理时间,执行所述第一任务,以将所述第一任务的处理结果发送给订阅端。/n

【技术特征摘要】
1.一种消息处理方法,其特征在于,包括:
接收业务端发送的一个或多个待处理消息;
针对每一个所述待处理消息:
根据所述待处理消息以及多个定时器,构建所述待处理消息对应的多个消息处理时间分别对应的多个第一任务;所述多个定时器分别指示了所述多个消息处理时间;
根据所述消息处理时间,执行所述第一任务,以将所述第一任务的处理结果发送给订阅端。


2.根据权利要求1所述的方法,其特征在于,所述根据所述消息处理时间,执行所述第一任务,将所述第一任务的处理结果发送给订阅端,包括:
针对所述多个第一任务,执行:
A:确定所述多个消息处理时间中距离当前时间最近的目标消息处理时间;
当所述定时器记录的时间指示达到所述目标消息处理时间时,执行与所述目标消息处理时间对应的目标任务;
响应于所述订阅端对所述目标任务的负反馈,执行步骤A;响应于所述订阅端对所述目标任务的正反馈,确定所述消息处理成功。


3.根据权利要求1所述的方法,其特征在于,
通过MQ集群接收所述待处理消息;
通过kafka集群的第一线程,根据所述待处理消息,分别生成所述一个或多个待处理消息分别对应的一个或多个第二任务,并将所述一个或多个第二任务存储至第一队列;
通过所述kafka集群的第二线程,根据预设周期,从所述第一队列中提取所述第二任务,并生成提取的所述第二任务对应的多个第一任务。


4.根据权利要求3所述的方法,其特征在于,还包括:
预先配置多组定时器,每一组定时器包括多个定时器,且不同组的定时器分别对应的起始时间不同;
所述生成提取的所述第二任务对应的多个第一任务,包括:
根据所述第二任务所对应的待处理消息的类型,确定所述第二任务对应的定时器组;
根据确定出的所述定时器组中的多个定时器,生成所述第二任务对应的多个第一任务。


5.根据权利要求3所述的方法,其特征在于,还包括:
接收业务端发送的当前消息;
确定所述第一任务和所述第二任务中,是否存在与所述当前消息对应同一标识的目标任务;
如果是,删除所述目标任务,并生成所述当前消息对应的第二任务。


6.根据权利要求2所述的方法,其特征在于,还包括:
响应于所述订阅端对所述多个第一任务中的最后一个目标任务的负反馈,将所述待处理消息...

【专利技术属性】
技术研发人员:刘亚苹
申请(专利权)人:北京京东拓先科技有限公司
类型:发明
国别省市:北京;11

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

1