CN113179304A - 消息下发方法、***、设备及存储介质 - Google Patents
消息下发方法、***、设备及存储介质 Download PDFInfo
- Publication number
- CN113179304A CN113179304A CN202110436106.6A CN202110436106A CN113179304A CN 113179304 A CN113179304 A CN 113179304A CN 202110436106 A CN202110436106 A CN 202110436106A CN 113179304 A CN113179304 A CN 113179304A
- Authority
- CN
- China
- Prior art keywords
- message
- distributed
- data
- issuing
- processed
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/146—Markers for unambiguous identification of a particular session, e.g. session cookie or URL-encoding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/2866—Architectures; Arrangements
- H04L67/30—Profiles
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明公开了一种消息下发方法,包括:接收定时任务的触发操作;根据触发操作获取定时任务对应的待处理数据,并为待处理数据设置状态标识,状态标识用于记录待分发数据进行下发处理时的处理状态;获取预设的配置文件,根据配置文件对待处理数据进行组装,得到待分发消息;根据待分发消息的消息类型,将待分发消息存储至对应的消息队列中;获取待分发消息对应的下发渠道类型,并根据下发渠道类型将消息队列中的待分发消息推送给下发渠道类型对应的消息渠道;当接收到消息渠道反馈的包括有待分发消息下发失败的响应信息时,根据响应信息修改待分发消息对应的待分发数据的状态标识,以重新对待分发数据进行下发处理。本发明可以提高消息分发效率。
Description
技术领域
本发明实施例涉及消息队列技术领域,尤其涉及一种消息下发方法、***、设备及可读存储介质。
背景技术
随着近年来互联网行业的快速发展,微服务架构的应用越来越广泛。而在微服务架构中,业务***为了支持扩展性,都遵从分布式架构,一个业务可能会拆分到不同的进程上,而不同的进程可能在不同的虚拟机或者物理机上运行,为了保持消息数据更新的一致性以让业务的正常进行,则在进程中引入了通信队列MQ,(Message Queue,消息队列),例如:ActiveMQ,RabbitMQ、RocketMQ、kafka等。
MQ作为一种消息中间件,用于将发送端的消息转发给消费端,以实现发送端与消费端之间的通信。
目前,利用消息中间件MQ的消息传输方式可以包括:发送端成功将多个消息依次发送给MQ,以使MQ在接收到每个消息时将消息传入消息队列,然后按照消息队列依次将消息下发给消费端,以供消费端进行消费。但是现有的MQ消息下发不够完善,当发送的数据量过大时,数据发送过程中容易出现问题,无法及时对出现问题的数据进行处理,从而影响了消息发送效率。
发明内容
有鉴于此,本发明实施例的目的是提供一种消息下发方法、***、设备及可读存储介质,有效的提高了消息分发效率。
为实现上述目的,本发明实施例提供了一种消息下发方法,包括:
接收定时任务的触发操作;
根据所述触发操作获取所述定时任务对应的待处理数据,并为所述待处理数据设置状态标识;
获取预设的配置文件,根据所述配置文件对所述待处理数据进行组装,得到待分发消息,并标记所述待处理数据的进行组装处理过程的状态标识;
当所述待处理数据组装成功时,将所述待处理数据的状态标识标记为组装成功状态;
根据所述待分发消息的状态标识与消息类型,将所述待分发消息存储至对应的消息队列中;
获取所述待分发消息对应的下发渠道类型,并根据所述下发渠道类型将所述消息队列中的待分发消息推送给对应的消息渠道;
接收所述消息渠道反馈的响应信息,根据所述响应信息标记所述待分发消息的状态标识;
当识别到所述响应信息中包括有下发失败的状态标识时,修改所述待分发消息对应的所述待分发数据的状态标识,并根据修改后的状态标识重新触发定时任务对所述待分发消息进行下发处理,直至所述响应信息中包括有下发成功的状态标识,完成所述待分发消息进行下发处理。
进一步地,所述接收定时任务的触发操作的步骤之前,所述方法还包括:
预先设置定时任务的单次批处理数;
从预设数据库中获取所述单次批处理数对应个数的待处理数据。
进一步地,所述接收定时任务的触发操作的步骤之后,还包括:
创建与所述定时任务的个数相对应数量的线程池,其中,每一个线程池与所述定时任务进行一一对应;
在所述线程池中创建所述待分发数据对应的个数的线程,并通过所述线程对所述待处理数据进行组装处理,得到所述待分发消息;
通过所述线程将所述待分发消息下发给所述待分发消息对应的消息渠道,以完成对所述待分发消息的下发处理。
进一步地,所述接收定时任务的触发操作步骤之后,还包括:
当所述定时任务触发时,生成任务记录日志,所述任务记录日志用于记录所述待处理数据在执行消息推送流程的处理状态和处理次数,所述处理状态通过对所述状态标识进行识别得到。
进一步地,所述当识别到所述响应信息中包括有下发失败的状态标识时,修改所述待分发消息对应的所述待分发数据的状态标识,并根据修改后的状态标识重新触发定时任务对所述待分发消息进行下发处理,直至所述响应信息中包括有下发成功的状态标识,完成所述待分发消息进行下发处理的步骤,包括:
当识别到所述响应信息为下发失败的状态标识时,根据所述响应信息在所述记录日志中更新所述待分发消息的处理次数;
当所述处理次数处于预设阈值段时,将所述待分发消息的状态标识设置为补处理标识,并根据所述补处理标识对所述待分发消息对应的待分发数据进行补处理,所述补处理为重新对所述待分发数据进行下发处理。
进一步地,所述当识别到所述响应信息中包括有下发失败的状态标识时,修改所述待分发消息对应的所述待分发数据的状态标识,并根据修改后的状态标识重新触发定时任务对所述待分发消息进行下发处理,直至所述响应信息中包括有下发成功的状态标识,完成所述待分发消息进行下发处理的步骤,包括:
当识别到所述响应信息为下发失败的状态标识时,根据所述响应信息将所述待分发消息对应的待分发数据的状态标识进行状态翻转,并根据翻转后的状态标识重新触发对所述待分发消息对应的定时任务进行执行的操作。
为实现上述目的,本发明实施例提供了一种消息下发***,包括:
接收模块,用于接收定时任务的触发操作;
获取模块,用于根据所述触发操作获取所述定时任务对应的待处理数据,并为所述待处理数据设置状态标识;
组装模块,用于获取预设的配置文件,根据所述配置文件对所述待处理数据进行组装,得到待分发消息,并标记所述待处理数据的进行组装处理过程的状态标识;
第一标记模块,用于当所述待处理数据组装成功时,将所述待处理数据的状态标识标记为组装成功状态;
存储模块,用于根据所述待分发消息的状态标识与消息类型,将所述待分发消息存储至对应的消息队列中;
推送模块,用于获取所述待分发消息对应的下发渠道类型,并根据所述下发渠道类型将所述消息队列中的待分发消息推送给对应的消息渠道;
第二标记模块,用于接收所述消息渠道反馈的响应信息,根据所述响应信息标记所述待分发消息的状态标识;
修改模块,用于当识别到所述响应信息中包括有下发失败的状态标识时,修改所述待分发消息对应的所述待分发数据的状态标识,并根据修改后的状态标识重新触发定时任务对所述待分发消息进行下发处理,直至所述响应信息中包括有下发成功的状态标识,完成所述待分发消息进行下发处理。
为实现上述目的,本发明实施例提供了一种计算机设备,所述计算机设备包括存储器、处理器,所述存储器上存储有可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如上所述的消息下发方法的步骤。
为实现上述目的,本发明实施例提供了一种计算机可读存储介质,
所述计算机可读存储介质内存储有计算机程序,所述计算机程序可被至少一个处理器所执行,以使所述至少一个处理器执行如上所述的消息下发方法的步骤。
本发明实施例提供的消息下发方法、***、设备及可读存储介质,通过对定时任务进行触发操作,获取定时任务对应的待处理数据,为待处理数据设置状态标识,从而记录待处理数据每次处理后的状态;当待处理消息下发失败时,对待处理数据的状态标识进行修改,以重新对待分发数据进行下发处理,直达定时任务处理成功,并且根据状态标识可以了解定时任务处理过程中的问题,从而能有效避免上下游数据不一致。
附图说明
图1为本发明消息下发方法实施例一的流程图。
图2为本发明消息下发***实施例二的程序模块示意图。
图3为本发明计算机设备实施例三的硬件结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一
参阅图1,示出了本发明实施例一之消息下发方法的步骤流程图。可以理解,本方法实施例中的流程图不用于对执行步骤的顺序进行限定。下面以计算机设备2为执行主体进行示例性描述。具体如下。
步骤S100,接收定时任务的触发操作。
具体地,预先设置定时任务的处理时间或者处理条件,例如处理条件为开机启动。当处理条件达到时,启动触发操作以触发定时任务进行处理。本实施例可以使用分布式***进行处理,定时任务可以是通过主控服务器根据处理时间启动各个执行服务器的定时任务;也可以是执行服务器自身开机时触发定时任务,执行服务器为执行定时任务的服务器。
步骤S101,根据所述触发操作获取所述定时任务对应的待处理数据,并为所述待处理数据设置状态标识。
具体地,预先设置每个定时任务的单次批处理数,当定时任务触发时,从数据库中获取单次批处理数对应的数量的待处理数据进行处理。处理状态可以包括:待处理状态、初始状态、进入队列状态、组装状态、发送状态等,当处于待处理状态时,状态标识为N(NO),表示未处理;当处于初始状态、进入队列状态、组装状态与发送状态时,状态标识为P(PENDING),表示正在处理中;发送状态下一步可以为发送成功状态与发送失败状态,发送成功状态的状态标识为S(SUCCESS),发送失败状态的状态标识为F(FAILURE)。为待处理数据设置状态标识,从而记录待处理数据每次处理后的状态,对待处理数据的处理状态进行更新,以重新执行定时任务,直达定时任务处理成功,并且根据状态标识可以了解定时任务处理过程中的问题,从而能有效避免上下游数据不一致。
示例性地,所述步骤S100之前,所述方法还包括:
步骤S110,预先设置定时任务的单次批处理数;步骤S111,从预设数据库中获取所述单次批处理数对应个数的待处理数据。
具体地,单次批处理数为每个定时任务需要处理的待处理数据的个数,由于定时任务的任务类型不同,可以设置多个数据库,以存储不同定时任务需要进行处理的待处理数据。例如,进行银行交易时,可以有交易数据数据库、资金流向数据库等。
步骤S102,获取预设的配置文件,根据所述配置文件对所述待处理数据进行组装,得到待分发消息,并标记所述待处理数据的进行组装处理过程的状态标识。
具体地,预先设置配置文件,根据配置文件对待处理数据进行组装,得到待分发消息。配置文件包括根据待处理数据组装的待处理消息的下发渠道类型以及每个下发渠道类型对应的封装方式等,对待处理数据进行组装为将待处理数据根据下发渠道类型以及下发渠道类型对应的封装方式进行组装,例如:当查询到数据库中待处理数据为交易数据,下发渠道类型为短信时,将交易数据按照短信格式的封装方式进行封装;当查询到下发渠道类型为邮件时,将交易数据按照邮件形式的封装方式进行封装;当查询到下发渠道类型为订阅消息时,将交易数据按照订阅消息内容的封装方式进行封装等,以防止数据丢失。当进入组装时,状态标识为P(PENDING),表示正在处理中;组装后得到组装成功S(SUCCESS)与组装失败F(FAILURE)的状态标识,根据标识可以判断是否执行下个步骤。
步骤S103,当所述待处理数据组装成功时,将所述待处理数据的状态标识标记为组装成功状态。
具体地,当待处理数据为组装成功时,将待处理数据的状态标识设置为组装成功S状态,以更好的管控消息组装与发送的各个流程。
步骤S104,根据所述待分发消息的状态标识与消息类型,将所述待分发消息存储至对应的消息队列中。
具体地,预先根据待分发消息的消息类型设计消息队列,例如,当待分发消息的消息类型为短信时,对应的消息队列为短信消息队列;当待分发消息的消息类型为邮件时,对应的消息队列为邮件消息队列;当待分发消息的消息类型为订阅消息时,对应的消息队列为订阅消息队列。消息队列作为分布式服务***的中间件,存储主控服务器发送的待分发消息,再提供给执行服务器进行执行,以达到削峰的效果。
步骤S105,获取所述待分发消息对应的下发渠道类型,并根据所述下发渠道类型将所述消息队列中的待分发消息推送给对应的消息渠道。
具体地,当待分发消息的状态标识为组装成功后,通过执行服务器获取待分发消息的下发渠道,根据下发渠道将待分发消息下发到下发渠道类型对应的消息渠道。可以创建线程池对待处理数据进行组装处理,线程池根据配置文件对待处理数据进行组装,以节省组装处理时间。
示例性地,所述方法还包括:
步骤S120,创建与所述定时任务的个数相对应数量的线程池,其中,每一个线程池与所述定时任务进行一一对应;步骤S121,在所述线程池中创建所述待分发数据对应的个数的线程,并通过所述线程对所述待处理数据进行组装处理,得到所述待分发消息;步骤S122,通过所述线程将所述待分发消息下发给所述待分发消息对应的消息渠道,以完成对所述待分发消息的下发处理。
具体地,创建线程池,每个线程池对应一个定时任务,每个线程池可以创建待分发消息对应的个数的线程数,以对待分发消息进行下发处理,节省处理时间。可以对每个线程池进行编号,当定时任务启动时,将线程池以编号的形式分发给定时任务,根据定时任务的启动时间依次分发线程池的编号,有效的控制定时任务的处理效率。
步骤S106,接收所述消息渠道反馈的响应信息,根据所述响应信息标记所述待分发消息的状态标识。
具体地,将待发送消息分别发送给对应的消息渠道,消息渠道对待发送消息进行接收,当消息渠道成功接收待发送消息后,返回包含有待发送消息发送成功的响应信息,当消息渠道接收失败待发送消息或者因为某些原因未能发送给消息渠道,返回包含有待发送消息发送失败的响应信息。
步骤S107,当识别到所述响应信息中包括有下发失败的状态标识时,修改所述待分发消息对应的所述待分发数据的状态标识,并根据修改后的状态标识重新触发定时任务对所述待分发消息进行下发处理,直至所述响应信息中包括有下发成功的状态标识,完成所述待分发消息进行下发处理。
示例性地,所述步骤S100之后,所述方法还包括:
当所述定时任务触发时,生成任务记录日志,所述任务记录日志用于记录所述待处理数据在执行消息推送流程的处理状态和处理次数,所述处理状态通过对所述状态标识进行识别得到。
具体地,当定时任务触发时,生成记录日志,用以记录待处理数据的处理状态和处理次数,当定时任务进行启动时,将定时任务的处理状态设置为更新状态,以使执行服务器根据更新状态执行定时任务。记录日志记录的内容包括待处理数据的记录交易类型、状态、处理次数等标识,对于进行异步处理的待处理数据,可以先记录下需要处理的客户或者账户维度的标识,数据可后续封装;对于实时处理的数据,需先记录下发的数据及需要下发的报文。可以根据记录日志,增加监控及时发现下发异常,监控处理不限于使用数据埋点或者使用cat监控***等。
示例性地,所述步骤S107还包括:
步骤S107A,当识别到所述响应信息为下发失败的状态标识时,根据所述响应信息在所述记录日志中更新所述待分发消息的处理次数;步骤S107B,当所述处理次数处于预设阈值段时,将所述待分发消息的状态标识设置为补处理标识,并根据所述补处理标识对所述待分发消息对应的待分发数据进行补处理,所述补处理为重新对所述待分发数据进行下发处理。
具体地,所述预设阈值段是预先设定区间值,或者为默认的区间值,该预设阈值段的具体区间可以根据实际情况进行设定与调整,作为示例,当所述预设阈值段为[0,3]时,则当处理次数处于[0,3]的范围内时,可以将待分发消息的状态标识设置为补处理标P,以根据补处理标识对待分发消息对应的待分发数据进行补处理,提高待分发消息的下发效率。
示例性地,所述步骤S107还包括:
当识别到所述响应信息为下发失败的状态标识时,根据所述响应信息将所述待分发消息对应的待分发数据的状态标识进行状态翻转,并根据翻转后的状态标识重新触发对所述待分发消息对应的定时任务进行执行的操作。
具体地,若待分发消息下发失败后,会更新记录日志里待分发消息的处理状态和处理次数,预设一定次数内对待分发消息进行补处理,将待分发消息的状态标识设置处理补处理标识,以根据补处理标识对待处理数据进行补处理,补处理可以理解为二次处理;或者当主控服务器启动后,看有无未处理完的待分发消息,对待分发消息进行状态翻转,状态翻转可以理解为将待分发消息的状态标识从当时的状态标识翻转为未处理状态的状态标识N,以重新触发待分发消息对应的定时任务进行执行,提高待分发消息的下发效率。
实施例二
请继续参阅图2,示出了本发明消息下发***实施例二的程序模块示意图。在本实施例中,消息下发***20可以包括或被分割成一个或多个程序模块,一个或者多个程序模块被存储于存储介质中,并由一个或多个处理器所执行,以完成本发明,并可实现上述消息下发方法。本发明实施例所称的程序模块是指能够完成特定功能的一系列计算机程序指令段,比程序本身更适合于描述消息下发***20在存储介质中的执行过程。以下描述将具体介绍本实施例各程序模块的功能:
接收模块200,用于接收定时任务的触发操作。
具体地,预先设置定时任务的处理时间或者处理条件,例如开机启动时。当处理条件达到时,启动触发操作以触发定时任务进行处理。本实施例可以使用分布式***进行处理,定时任务可以是通过主控服务器根据处理时间启动各个执行服务器的定时任务;也可以是执行服务器自身开机时触发定时任务,执行服务器为执行定时任务的服务器。
获取模块201,用于根据所述触发操作获取所述定时任务对应的待处理数据,并为所述待处理数据设置状态标识。
具体地,预先设置每个定时任务的单次批处理数,当定时任务触发时,从数据库中获取单次批处理数对应的数量的待处理数据进行处理。处理状态可以包括:待处理状态、初始状态、进入队列状态、组装状态、发送状态等,当处于待处理状态时,状态标识为N(NO),表示未处理;当处于初始状态、进入队列状态、组装状态与发送状态时,状态标识为P(PENDING),表示正在处理中;发送状态下一步可以为发送成功状态与发送失败状态,发送成功状态的状态标识为S(SUCCESS),发送失败状态的状态标识为F(FAILURE)。为待处理数据设置状态标识,从而记录待处理数据每次处理后的状态,对待处理数据的处理状态进行更新,以重新执行定时任务,直达定时任务处理成功,并且根据状态标识可以了解定时任务处理过程中的问题,从而能有效避免上下游数据不一致。
组装模块202,用于获取预设的配置文件,根据所述配置文件对所述待处理数据进行组装,得到待分发消息,并标记所述待处理数据的进行组装处理过程的状态标识。
具体地,预先设置配置文件,根据配置文件对待处理数据进行组装,得到待分发消息。配置文件包括根据待处理数据组装的待处理消息的下发渠道类型以及每个下发渠道类型对应的封装方式等,对待处理数据进行组装为将待处理数据根据下发渠道类型以及下发渠道类型对应的封装方式进行组装,例如:当查询到数据库中待处理数据为交易数据,下发渠道类型为短信时,将交易数据按照短信格式的封装方式进行封装;当查询到下发渠道类型为邮件时,将交易数据按照邮件形式的封装方式进行封装;当查询到下发渠道类型为订阅消息时,将交易数据按照订阅消息内容的封装方式进行封装等,以防止数据丢失。当进入组装时,状态标识为P(PENDING),表示正在处理中;组装后得到组装成功S(SUCCESS)与组装失败F(FAILURE)的状态标识,根据标识可以判断是否执行下个步骤。
第一标记模块203,用于当所述待处理数据组装成功时,将所述待处理数据的状态标识标记为组装成功状态。
具体地,当待处理数据为组装成功时,将待处理数据的状态标识设置为组装成功S状态,以更好的管控消息组装与发送的各个流程。
存储模块204,用于根据所述待分发消息的状态标识与消息类型,将所述待分发消息存储至对应的消息队列中。
具体地,当待分发消息的状态标识为组装成功后,预先根据待分发消息的消息类型设计消息队列,例如,当待分发消息的消息类型为短信时,对应的消息队列为短信消息队列;当待分发消息的消息类型为邮件时,对应的消息队列为邮件消息队列;当待分发消息的消息类型为订阅消息时,对应的消息队列为订阅消息队列。消息队列作为分布式服务***的中间件,存储主控服务器发送的待分发消息,再提供给执行服务器进行执行,以达到削峰的效果。
推送模块205,用于获取所述待分发消息对应的下发渠道类型,并根据所述下发渠道类型将所述消息队列中的待分发消息推送给所述下发渠道类型对应的消息渠道。
具体地,通过执行服务器获取待分发消息的下发渠道,根据下发渠道将待分发消息下发到下发渠道类型对应的消息渠道。可以创建线程池对待处理数据进行组装处理,线程池根据配置文件对待处理数据进行组装,以节省组装处理时间。
第二标记模块206,用于接收所述消息渠道反馈的响应信息,根据所述响应信息标记所述待分发消息的状态标识。
具体地,将待发送消息分别发送给对应的消息渠道,消息渠道对待发送消息进行接收,当消息渠道成功接收待发送消息后,返回包含有待发送消息发送成功的响应信息,当消息渠道接收失败待发送消息或者因为某些原因未能发送给消息渠道,返回包含有待发送消息发送失败的响应信息。
修改模块207,用于当识别到所述响应信息中包括有下发失败的状态标识时,修改所述待分发消息对应的所述待分发数据的状态标识,并根据修改后的状态标识重新触发定时任务对所述待分发消息进行下发处理,直至所述响应信息中包括有下发成功的状态标识,完成所述待分发消息进行下发处理
示例性地,所述***20还用于:
当所述定时任务触发时,生成任务记录日志,所述任务记录日志用于记录所述待处理数据在执行消息推送流程的处理状态和处理次数,所述处理状态通过对所述状态标识进行识别得到。
具体地,当定时任务触发时,生成记录日志,用以记录待处理数据的处理状态和处理次数,当定时任务进行启动时,将定时任务的处理状态设置为更新状态,以使执行服务器根据更新状态执行定时任务。记录日志记录的内容包括待处理数据的记录交易类型、状态、处理次数等标识,对于进行异步处理的待处理数据,可以先记录下需要处理的客户或者账户维度的标识,数据可后续封装;对于实时处理的数据,需先记录下发的数据及需要下发的报文。可以根据记录日志,增加监控及时发现下发异常,监控处理不限于使用数据埋点或者使用cat监控***等。
示例性地,所述修改模块207还用于:
当识别到所述响应信息为下发失败的状态标识时,根据所述响应信息在所述记录日志中更新所述待分发消息的处理次数;当所述处理次数处于预设阈值段时,将所述待分发消息的状态标识设置为补处理标识,并根据所述补处理标识对所述待分发消息对应的待分发数据进行补处理,所述补处理为重新对所述待分发数据进行下发处理。
具体地,所述预设阈值段是预先设定区间值,或者为默认的区间值,该预设阈值段的具体区间可以根据实际情况进行设定与调整,作为示例,当所述预设阈值段为[0,3]时,则当处理次数处于[0,3]的范围内时,可以将待分发消息的状态标识设置为补处理标P,以根据补处理标识对待分发消息对应的待分发数据进行补处理,提高待分发消息的下发效率。
示例性地,所述修改模块207还用于:
当识别到所述响应信息为下发失败的状态标识时,根据所述响应信息将所述待分发消息对应的待分发数据的状态标识进行状态翻转,并根据翻转后的状态标识重新触发对所述待分发消息对应的定时任务进行执行的操作。
具体地,若待分发消息下发失败后,会更新记录日志里待分发消息的处理状态和处理次数,预设一定次数内对待分发消息进行补处理,将待分发消息的状态标识设置处理补处理标识,以根据补处理标识对待处理数据进行补处理,补处理可以理解为二次处理;或者当主控服务器启动后,看有无未处理完的待分发消息,对待分发消息进行状态翻转,状态翻转可以理解为将待分发消息的状态标识从当时的状态标识翻转为未处理状态的状态标识N,以重新触发待分发消息对应的定时任务进行执行,提高待分发消息的下发效率。
实施例三
参阅图3,是本发明实施例三之计算机设备的硬件架构示意图。本实施例中,所述计算机设备2是一种能够按照事先设定或者存储的指令,自动进行数值计算和/或信息处理的设备。该计算机设备2可以是机架式服务器、刀片式服务器、塔式服务器或机柜式服务器(包括独立的服务器,或者多个服务器所组成的服务器集群)等。如图3所示,所述计算机设备2至少包括,但不限于,可通过***总线相互通信连接存储器21、处理器22、网络接口23、以及消息下发***20。其中:
本实施例中,存储器21至少包括一种类型的计算机可读存储介质,所述可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,存储器21可以是计算机设备2的内部存储单元,例如该计算机设备2的硬盘或内存。在另一些实施例中,存储器21也可以是计算机设备2的外部存储设备,例如该计算机设备2上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。当然,存储器21还可以既包括计算机设备2的内部存储单元也包括其外部存储设备。本实施例中,存储器21通常用于存储安装于计算机设备2的操作***和各类应用软件,例如实施例二的消息下发***20的程序代码等。此外,存储器21还可以用于暂时地存储已经输出或者将要输出的各类数据。
处理器22在一些实施例中可以是中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器22通常用于控制计算机设备2的总体操作。本实施例中,处理器22用于运行存储器21中存储的程序代码或者处理数据,例如运行消息下发***20,以实现实施例一的消息下发方法。
所述网络接口23可包括无线网络接口或有线网络接口,该网络接口23通常用于在所述服务器2与其他电子装置之间建立通信连接。例如,所述网络接口23用于通过网络将所述服务器2与外部终端相连,在所述服务器2与外部终端之间的建立数据传输通道和通信连接等。所述网络可以是企业内部网(Intranet)、互联网(Internet)、全球移动通讯***(Global System of Mobile communication,GSM)、宽带码分多址(Wideband CodeDivision Multiple Access,WCDMA)、4G网络、5G网络、蓝牙(Bluetooth)、Wi-Fi等无线或有线网络。需要指出的是,图3仅示出了具有部件20-23的计算机设备2,但是应理解的是,并不要求实施所有示出的部件,可以替代的实施更多或者更少的部件。在本实施例中,存储于存储器21中的所述消息下发***20还可以被分割为一个或者多个程序模块,所述一个或者多个程序模块被存储于存储器21中,并由一个或多个处理器(本实施例为处理器22)所执行,以完成本发明。
例如,图2示出了所述实现消息下发***20实施例二的程序模块示意图,该实施例中,所述消息下发***20可以被划分为所述接收模块200、所述获取模块201、所述组装模块202、所述第一标记模块203、所述存储模块204、所述推送模块205、所述第二标记模块206以及所述修改模块207。其中,本发明所称的程序模块是指能够完成特定功能的一系列计算机程序指令段,比程序更适合于描述所述消息下发***20在所述计算机设备2中的执行过程。所述程序模块200-207的具体功能在实施例二中已有详细描述,在此不再赘述。
实施例四
本实施例还提供一种计算机可读存储介质,如闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘、服务器、App应用商城等等,其上存储有计算机程序,程序被处理器执行时实现相应功能。本实施例的计算机可读存储介质用于计算机程序,被处理器执行时实现实施例一的消息下发方法。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种消息下发方法,其特征在于,包括:
接收定时任务的触发操作;
根据所述触发操作获取所述定时任务对应的待处理数据,并为所述待处理数据设置状态标识;
获取预设的配置文件,根据所述配置文件对所述待处理数据进行组装,得到待分发消息,并标记所述待处理数据的进行组装处理过程的状态标识;
当所述待处理数据组装成功时,将所述待处理数据的状态标识标记为组装成功状态;
根据所述待分发消息的状态标识与消息类型,将所述待分发消息存储至对应的消息队列中;
获取所述待分发消息对应的下发渠道类型,并根据所述下发渠道类型将所述消息队列中的待分发消息推送给对应的消息渠道;
接收所述消息渠道反馈的响应信息,根据所述响应信息标记所述待分发消息的状态标识;
当识别到所述响应信息中包括有下发失败的状态标识时,修改所述待分发消息对应的所述待分发数据的状态标识,并根据修改后的状态标识重新触发定时任务对所述待分发消息进行下发处理,直至所述响应信息中包括有下发成功的状态标识,完成所述待分发消息进行下发处理。
2.根据权利要求1所述的消息下发方法,其特征在于,所述接收定时任务的触发操作的步骤之前,所述方法还包括:
预先设置定时任务的单次批处理数;
从预设数据库中获取所述单次批处理数对应个数的待处理数据。
3.根据权利要求1所述的消息下发方法,其特征在于,所述接收定时任务的触发操作的步骤之后,还包括:
创建与所述定时任务的个数相对应数量的线程池,其中,每一个线程池与所述定时任务进行一一对应;
在所述线程池中创建所述待分发数据对应的个数的线程,并通过所述线程对所述待处理数据进行组装处理,得到所述待分发消息;
通过所述线程将所述待分发消息下发给所述待分发消息对应的消息渠道,以完成对所述待分发消息的下发处理。
4.根据权利要求1所述的消息下发方法,其特征在于,所述接收定时任务的触发操作步骤之后,还包括:
当所述定时任务触发时,生成任务记录日志,所述任务记录日志用于记录所述待处理数据在执行消息推送流程的处理状态和处理次数,所述处理状态通过对所述状态标识进行识别得到。
5.根据权利要求4所述的息下发方法,其特征在于,所述当识别到所述响应信息中包括有下发失败的状态标识时,修改所述待分发消息对应的所述待分发数据的状态标识,并根据修改后的状态标识重新触发定时任务对所述待分发消息进行下发处理,直至所述响应信息中包括有下发成功的状态标识,完成所述待分发消息进行下发处理的步骤,包括:
当识别到所述响应信息为下发失败的状态标识时,根据所述响应信息在所述记录日志中更新所述待分发消息的处理次数;
当所述处理次数处于预设阈值段时,将所述待分发消息的状态标识设置为补处理标识,并根据所述补处理标识对所述待分发消息对应的待分发数据进行补处理,所述补处理为重新对所述待分发数据进行下发处理。
6.根据权利要求1所述的息下发方法,其特征在于,所述当识别到所述响应信息中包括有下发失败的状态标识时,修改所述待分发消息对应的所述待分发数据的状态标识,并根据修改后的状态标识重新触发定时任务对所述待分发消息进行下发处理,直至所述响应信息中包括有下发成功的状态标识,完成所述待分发消息进行下发处理的步骤,包括:
当识别到所述响应信息为下发失败的状态标识时,根据所述响应信息将所述待分发消息对应的待分发数据的状态标识进行状态翻转,并根据翻转后的状态标识重新触发对所述待分发消息对应的定时任务进行执行的操作。
7.一种消息下发***,其特征在于,包括:
接收模块,用于接收定时任务的触发操作;
获取模块,用于根据所述触发操作获取所述定时任务对应的待处理数据,并为所述待处理数据设置状态标识;
组装模块,用于获取预设的配置文件,根据所述配置文件对所述待处理数据进行组装,得到待分发消息,并标记所述待处理数据的进行组装处理过程的状态标识;
第一标记模块,用于当所述待处理数据组装成功时,将所述待处理数据的状态标识标记为组装成功状态;
存储模块,用于根据所述待分发消息的状态标识与消息类型,将所述待分发消息存储至对应的消息队列中;
推送模块,用于获取所述待分发消息对应的下发渠道类型,并根据所述下发渠道类型将所述消息队列中的待分发消息推送给对应的消息渠道;
第二标记模块,用于接收所述消息渠道反馈的响应信息,根据所述响应信息标记所述待分发消息的状态标识;
修改模块,用于当识别到所述响应信息中包括有下发失败的状态标识时,修改所述待分发消息对应的所述待分发数据的状态标识,并根据修改后的状态标识重新触发定时任务对所述待分发消息进行下发处理,直至所述响应信息中包括有下发成功的状态标识,完成所述待分发消息进行下发处理。
8.根据权利要求7所述的消息下发***,其特征在于,所述修改模块还用于:
当识别到所述响应信息为下发失败的状态标识时,根据所述响应信息将所述待分发消息对应的待分发数据的状态标识进行状态翻转,并根据翻转后的状态标识重新触发对所述待分发消息对应的定时任务进行执行的操作。
9.一种计算机设备,其特征在于,所述计算机设备包括存储器、处理器,所述存储器上存储有可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如权利要求1-6中任一项所述的消息下发方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序可被至少一个处理器所执行,以使所述至少一个处理器执行如权利要求1-6中任一项所述的消息下发方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110436106.6A CN113179304B (zh) | 2021-04-22 | 2021-04-22 | 消息下发方法、***、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110436106.6A CN113179304B (zh) | 2021-04-22 | 2021-04-22 | 消息下发方法、***、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113179304A true CN113179304A (zh) | 2021-07-27 |
CN113179304B CN113179304B (zh) | 2022-10-28 |
Family
ID=76924429
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110436106.6A Active CN113179304B (zh) | 2021-04-22 | 2021-04-22 | 消息下发方法、***、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113179304B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113742354A (zh) * | 2021-09-18 | 2021-12-03 | 中国银行股份有限公司 | 消息确认方法及装置、存储介质及电子设备 |
CN114489867A (zh) * | 2022-04-19 | 2022-05-13 | 浙江大华技术股份有限公司 | 算法模块调度方法、算法模块调度装置以及可读存储介质 |
CN115834523A (zh) * | 2022-09-27 | 2023-03-21 | 中银金融科技有限公司 | 自动化消息处理方法、***、设备及存储介质 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018121738A1 (zh) * | 2016-12-30 | 2018-07-05 | 北京奇虎科技有限公司 | 流数据任务的处理方法和装置 |
CN108280150A (zh) * | 2018-01-05 | 2018-07-13 | 宝付网络科技(上海)有限公司 | 一种分布式异步业务分发方法及*** |
CN108762931A (zh) * | 2018-05-31 | 2018-11-06 | 康键信息技术(深圳)有限公司 | 基于分布式调度***的任务调度方法、服务器及存储介质 |
CN109040251A (zh) * | 2018-08-07 | 2018-12-18 | 中国建设银行股份有限公司 | 一种异步消息的处理方法及*** |
WO2020015186A1 (zh) * | 2018-07-19 | 2020-01-23 | 平安科技(深圳)有限公司 | 实时更新页面数据的方法、装置、电子设备 |
CN111143093A (zh) * | 2019-12-31 | 2020-05-12 | 中国银行股份有限公司 | 异步消息分布式处理方法、装置、设备及存储介质 |
CN111327775A (zh) * | 2018-12-17 | 2020-06-23 | ***通信集团青海有限公司 | 一种消息分发方法、装置、设备、介质及在线计费*** |
CN111461556A (zh) * | 2020-04-03 | 2020-07-28 | 中科智感科技(湖南)有限公司 | 一种铁路电务作业盯控平台、方法及设备和存储介质 |
CN111901352A (zh) * | 2020-07-30 | 2020-11-06 | 彩讯科技股份有限公司 | 消息分发处理的方法、装置、服务器及存储介质 |
-
2021
- 2021-04-22 CN CN202110436106.6A patent/CN113179304B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018121738A1 (zh) * | 2016-12-30 | 2018-07-05 | 北京奇虎科技有限公司 | 流数据任务的处理方法和装置 |
CN108280150A (zh) * | 2018-01-05 | 2018-07-13 | 宝付网络科技(上海)有限公司 | 一种分布式异步业务分发方法及*** |
CN108762931A (zh) * | 2018-05-31 | 2018-11-06 | 康键信息技术(深圳)有限公司 | 基于分布式调度***的任务调度方法、服务器及存储介质 |
WO2020015186A1 (zh) * | 2018-07-19 | 2020-01-23 | 平安科技(深圳)有限公司 | 实时更新页面数据的方法、装置、电子设备 |
CN109040251A (zh) * | 2018-08-07 | 2018-12-18 | 中国建设银行股份有限公司 | 一种异步消息的处理方法及*** |
CN111327775A (zh) * | 2018-12-17 | 2020-06-23 | ***通信集团青海有限公司 | 一种消息分发方法、装置、设备、介质及在线计费*** |
CN111143093A (zh) * | 2019-12-31 | 2020-05-12 | 中国银行股份有限公司 | 异步消息分布式处理方法、装置、设备及存储介质 |
CN111461556A (zh) * | 2020-04-03 | 2020-07-28 | 中科智感科技(湖南)有限公司 | 一种铁路电务作业盯控平台、方法及设备和存储介质 |
CN111901352A (zh) * | 2020-07-30 | 2020-11-06 | 彩讯科技股份有限公司 | 消息分发处理的方法、装置、服务器及存储介质 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113742354A (zh) * | 2021-09-18 | 2021-12-03 | 中国银行股份有限公司 | 消息确认方法及装置、存储介质及电子设备 |
CN113742354B (zh) * | 2021-09-18 | 2024-02-09 | 中国银行股份有限公司 | 消息确认方法及装置、存储介质及电子设备 |
CN114489867A (zh) * | 2022-04-19 | 2022-05-13 | 浙江大华技术股份有限公司 | 算法模块调度方法、算法模块调度装置以及可读存储介质 |
CN115834523A (zh) * | 2022-09-27 | 2023-03-21 | 中银金融科技有限公司 | 自动化消息处理方法、***、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN113179304B (zh) | 2022-10-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113179304B (zh) | 消息下发方法、***、设备及存储介质 | |
CN109194538B (zh) | 基于分布式协调的测试方法、装置、服务器及存储介质 | |
CN108491301B (zh) | 电子装置、基于redis的异常预警方法及存储介质 | |
CN111274052A (zh) | 数据分发方法、服务器及计算机可读存储介质 | |
JPH06103481B2 (ja) | プログラムロ−デイング方式 | |
CN111835467B (zh) | 消息发送方法、装置、计算机设备和存储介质 | |
CN110222535B (zh) | 区块链配置文件的处理装置、方法及存储介质 | |
CN110674440A (zh) | 埋点数据处理方法、***、计算机设备及可读存储介质 | |
CN108170551B (zh) | 基于爬虫***的前后端错误处理方法、服务器及存储介质 | |
CN111580948A (zh) | 任务调度方法、装置及计算机设备 | |
CN110333916B (zh) | 请求消息处理方法、装置、计算机***及可读存储介质 | |
CN113434281B (zh) | 设备调度方法及云平台 | |
CN109327499B (zh) | 业务接口的管理方法及装置、存储介质、终端 | |
CN110866834A (zh) | 批处理程序的执行方法及*** | |
CN112559155A (zh) | 批量作业处理方法、***、计算机设备及可读存储介质 | |
CN112087475A (zh) | 一种云平台组件应用的消息推送方法、装置及消息服务器 | |
CN116450165A (zh) | 一种快速搭建环境及部署程序的方法、***、终端及存储介质 | |
CN111552581B (zh) | 事件传递方法、装置、***和电子设备 | |
CN114490196A (zh) | 数据库切换方法、***、设备及介质 | |
CN110580172B (zh) | 配置规则的验证方法及装置、存储介质、电子装置 | |
CN111679899A (zh) | 任务调度方法、装置、平台设备及存储介质 | |
CN113806056B (zh) | 定时任务处理方法、装置、计算机设备和存储介质 | |
CN116502235B (zh) | 一种tms远程管理方法及*** | |
CN112115020B (zh) | 一种数据库连接池异常监测方法、装置及计算机设备 | |
CN109460901B (zh) | 坐席信息同步方法、装置、计算机设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |