消息发送方法、装置、计算机设备和存储介质制造方法及图纸

技术编号:26072001 阅读:29 留言:0更新日期:2020-10-28 16:45
本发明专利技术提供一种消息发送方法,包括:在预设的消息记录表中记录待发送消息的关键参数和消息类型;向目标下游业务系统发送待发送消息,待发送消息中携带上游系统本次消息发送时间和上游系统前次消息发送时间;当接收到目标下游业务系统返回的消息重发请求,消息重发请求包含下游系统前次消息接收时间时,查找下游系统前次消息接收时间到上游系统本次消息发送时间之间向目标下游业务系统发送的消息,而后判断查找到消息的消息状态是否为失败,若否,则将查找到的消息作为新待发送消息并返回向目标下游业务系统发送待发送消息的步骤,同时将各新待发送消息的历史发送次数加1。本发明专利技术能够在不影响上游业务系统进程性能的前提下确认消息是否丢失。

【技术实现步骤摘要】
消息发送方法、装置、计算机设备和存储介质
本专利技术涉及消息传输
,尤其涉及一种消息发送方法、装置、计算机设备和存储介质。
技术介绍
当两个关联系统交互时,为了解耦或是避免消息洪峰,上游业务系统会有很多需要通过MQ(MessageQueue,消息队列)向下游业务系统发送消息的场景,但是系统间通过MQ进行交互并不是100%可靠的,不管是activeMq、rabbitMq或是rocketMq、Kafka,都无法保证消息可以100%发送成功。目前,一般通过下游业务系统向上游业务系统发送回执来确认消息是否发送成功。当接收消息的下游业务系统较多时,较多的回执会影响上游业务系统的进程性能。此外,当消息发送失败时,对于上游业务系统就很有必要支持消息重发。传统方案一般是在捕获到异常消息后直接重新发送消息,重试多次,如果多次重试均失败,那么该消息便被丢弃不再重发,等下游业务系统发现问题再通知上游业务系统,上游业务系统再通知人工构造消息,并将人工构造的消息重新发送至下游业务系统,由于此种方案需要人工构造消息,耗时较长且存在人为失误的情况。对此,现有技术提供了另外一种方案,当某消息经多次重发仍失败后,将该消息存入缓存系统,再利用定时器,每隔一段时间,定时从缓存系统中取出缓存消息重新进行发送,由于此种方案需要将每条发送失败消息的完整内容进行缓存,因此存储成本较高。
技术实现思路
针对上述现有技术的不足,本专利技术提供一种消息发送方法、装置、计算机设备和存储介质,能够在不影响上游业务系统进程性能的前提下确认消息是否丢失,同时在消息发送失败时无需对消息进行缓存,节约存储成本。为了实现上述目的,本专利技术提供一种消息发送方法,包括:在预设的消息记录表中记录待发送消息的关键参数和消息类型;向目标下游业务系统发送所述待发送消息,其中,在所述待发送消息中携带上游系统本次消息发送时间和上游系统前次消息发送时间;当接收到所述目标下游业务系统返回的消息重发请求,所述消息重发请求包含下游系统前次消息接收时间时,查找所述下游系统前次消息接收时间到上游系统本次消息发送时间之间向所述目标下游业务系统发送的消息,而后判断查找到消息的消息状态是否为失败,若否,则将查找到的消息作为新待发送消息并返回所述向目标下游业务系统发送所述待发送消息的步骤,同时将各所述新待发送消息的历史发送次数加1;当某新待发送消息的历史发送次数达到预设的第一重发次数阈值时,将所述新待发送消息的消息状态设置为失败,同时丢弃所述新待发送消息;定时进行任务调度,以从所述消息记录表中,获取失败消息状态所对应的关键参数和消息类型,并根据获取到的关键参数和消息类型,从预设的业务数据库中查找生成对应目标消息所需的必要参数,而后按照预设的协议规则组装所述必要参数得到所述目标消息,并向所述目标下游业务系统发送所述目标消息。在本专利技术一个实施例中,所述在预设的消息记录表中记录待发送消息的关键参数和消息类型之前,还包括:建立所述消息记录表,以记录消息的关键参数、消息类型、消息状态、历史发送次数和发送时间。在本专利技术一个实施例中,所述目标消息中携带回执请求;在所述向所述目标下游业务系统发送所述目标消息之后,所述方法还包括:当接收到所述目标下游业务系统返回的回执时,将所述目标消息对应的消息状态更新为成功。在本专利技术一个实施例中,在所述向所述目标下游业务系统发送所述目标消息之后,所述方法还包括:当未接收到所述目标下游业务系统返回的回执时,更新所述目标消息的历史重发次数。在本专利技术一个实施例中,在所述更新所述目标消息的历史重发次数后,所述方法还包括:判断所述目标消息的历史重发次数是否达到预定的第二重发次数阈值,若是,则输出对应的告警信息。在本专利技术一个实施例中,所述方法还包括:接收用户输入的关键参数和消息类型;根据用户输入的关键参数和消息类型,从所述业务数据库中查找生成对应目标消息所需的必要参数,而后按照预设的协议规则组装所述必要参数得到所述目标消息,并向所述目标下游业务系统重发所述目标消息。在本专利技术一个实施例中,所述方法还包括:接收用户输入的批量重发文档,所述批量消息重发文档中包含多个目标消息对应的关键参数和消息类型;根据每个目标消息对应的关键参数和消息类型,从所述业务数据库中查找生成对应目标消息所需的必要参数,而后按照预设的协议规则组装所述必要参数得到多个所述目标消息,并向所述目标下游业务系统重发所述多个目标消息。本专利技术还提供一种消息发送装置,包括:记录模块,用于记录在预设的消息记录表中记录待发送消息的关键参数和消息类型;第一消息发送模块,用于向目标下游业务系统发送所述待发送消息,其中,在所述待发送消息中携带上游系统本次消息发送时间和上游系统前次消息发送时间;重发模块,用于在接收到所述目标下游业务系统返回的消息重发请求,所述消息重发请求包含下游系统前次消息接收时间时,查找所述下游系统前次消息接收时间到上游系统本次消息发送时间之间向所述目标下游业务系统发送的消息,而后判断查找到消息的消息状态是否为失败,若否,则将查找到的消息作为新待发送消息并返回所述向目标下游业务系统发送所述待发送消息的步骤,同时将各所述新待发送消息的历史发送次数加1;重发失败处理模块,用于在某新待发送消息的历史发送次数达到预设的第一重发次数阈值时,将所述新待发送消息的消息状态设置为失败,同时丢弃所述新待发送消息;任务调度模块,用于定时进行任务调度,以从所述消息记录表中,获取失败消息状态所对应的关键参数和消息类型,并根据获取到的关键参数和消息类型,从预设的业务数据库中查找生成对应目标消息所需的必要参数,而后按照预设的协议规则组装所述必要参数得到所述目标消息,并向所述目标下游业务系统发送所述目标消息。在本专利技术一个实施例中,所述装置还包括:记录表建立模块,用于建立所述消息记录表,以记录消息的关键参数、消息类型、消息状态、历史发送次数和发送时间。在本专利技术一个实施例中,所述目标消息中携带回执请求;所述装置还包括:状态更新模块,用于在接收到所述目标下游业务系统返回的回执时,将所述目标消息对应的消息状态更新为成功。在本专利技术一个实施例中,所述装置还包括:次数更新模块,用于在未接收到所述目标下游业务系统返回的回执时,更新所述目标消息的历史重发次数。在本专利技术一个实施例中,所述装置还包括:告警模块,用于判断所述目标消息的历史重发次数是否达到预定的第二重发次数阈值,若是,输出对应的告警信息。在本专利技术一个实施例中,所述装置还包括:手动重发指令接收模块,用于接收用户输入的关键参数和消息类型;手动重发处理模块,用于根据用户输入的关键参数和消息类型,从所述业务数据库中查找生成对应目标消息所需的必要参数,而后按照预设的协议规则组装所述必要参数得到所述目标消息,并向所述目标下游业务系统重发所述目标消息。在本文档来自技高网...

【技术保护点】
1.一种消息发送方法,其特征在于,包括:/n在预设的消息记录表中记录待发送消息的关键参数和消息类型;/n向目标下游业务系统发送所述待发送消息,其中,所述待发送消息中携带上游系统本次消息发送时间和上游系统前次消息发送时间;/n当接收到所述目标下游业务系统返回的消息重发请求,所述消息重发请求包含下游系统前次消息接收时间时,查找所述下游系统前次消息接收时间到上游系统本次消息发送时间之间向所述目标下游业务系统发送的消息,而后判断查找到消息的消息状态是否为失败,若否,则将查找到的消息作为新待发送消息并返回所述向目标下游业务系统发送所述待发送消息的步骤,同时将各所述新待发送消息的历史发送次数加1;/n当某新待发送消息的历史发送次数达到预设的第一重发次数阈值时,将所述新待发送消息的消息状态设置为失败,同时丢弃所述新待发送消息;/n定时进行任务调度,以从所述消息记录表中,获取失败消息状态所对应的关键参数和消息类型,并根据获取到的关键参数和消息类型,从预设的业务数据库中查找生成对应目标消息所需的必要参数,而后按照预设的协议规则组装所述必要参数得到所述目标消息,并向所述目标下游业务系统发送所述目标消息。/n...

【技术特征摘要】
1.一种消息发送方法,其特征在于,包括:
在预设的消息记录表中记录待发送消息的关键参数和消息类型;
向目标下游业务系统发送所述待发送消息,其中,所述待发送消息中携带上游系统本次消息发送时间和上游系统前次消息发送时间;
当接收到所述目标下游业务系统返回的消息重发请求,所述消息重发请求包含下游系统前次消息接收时间时,查找所述下游系统前次消息接收时间到上游系统本次消息发送时间之间向所述目标下游业务系统发送的消息,而后判断查找到消息的消息状态是否为失败,若否,则将查找到的消息作为新待发送消息并返回所述向目标下游业务系统发送所述待发送消息的步骤,同时将各所述新待发送消息的历史发送次数加1;
当某新待发送消息的历史发送次数达到预设的第一重发次数阈值时,将所述新待发送消息的消息状态设置为失败,同时丢弃所述新待发送消息;
定时进行任务调度,以从所述消息记录表中,获取失败消息状态所对应的关键参数和消息类型,并根据获取到的关键参数和消息类型,从预设的业务数据库中查找生成对应目标消息所需的必要参数,而后按照预设的协议规则组装所述必要参数得到所述目标消息,并向所述目标下游业务系统发送所述目标消息。


2.根据权利要求1所述的消息发送方法,其特征在于,所述在预设的消息记录表中记录待发送消息的关键参数和消息类型之前,还包括:
建立所述消息记录表,以记录消息的关键参数、消息类型、消息状态、历史发送次数和发送时间。


3.根据权利要求1所述的消息发送方法,其特征在于,所述目标消息中携带回执请求;
在所述向所述目标下游业务系统发送所述目标消息之后,所述方法还包括:
当接收到所述目标下游业务系统返回的回执时,将所述目标消息对应的消息状态更新为成功。


4.根据权利要求3所述的消息发送方法,其特征在于,在所述向所述目标下游业务系统发送所述目标消息之后,所述方法还包括:
当未接收到所述目标下游业务系统返回的回执时,更新所述目标消息的历史重发次数。


5.根据权利要求4所述的消息发送方法,其特征在于,在所述更新所述目标消息的历史重发次数后,所述方法还包括:判断所述目标消息的历史重发次数是否达到预定的第二重发次数阈值,若是,则输出对应的告警信息。


6.根据权利要求1所述的消息发送方法,其特征在于,所述方法还包括:
接收用户输入的关键参数和...

【专利技术属性】
技术研发人员:周航
申请(专利权)人:中国平安财产保险股份有限公司
类型:发明
国别省市:广东;44

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

1