CN112256954A - 一种消息推送的处理方法及相关系统 - Google Patents
一种消息推送的处理方法及相关系统 Download PDFInfo
- Publication number
- CN112256954A CN112256954A CN202010935783.8A CN202010935783A CN112256954A CN 112256954 A CN112256954 A CN 112256954A CN 202010935783 A CN202010935783 A CN 202010935783A CN 112256954 A CN112256954 A CN 112256954A
- Authority
- CN
- China
- Prior art keywords
- message
- push
- data
- pushing
- user
- 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.)
- Pending
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 15
- 238000012545 processing Methods 0.000 claims abstract description 54
- 238000000034 method Methods 0.000 claims abstract description 25
- 238000004458 analytical method Methods 0.000 claims description 4
- 230000008878 coupling Effects 0.000 abstract description 10
- 238000010168 coupling process Methods 0.000 abstract description 10
- 238000005859 coupling reaction Methods 0.000 abstract description 10
- 230000004044 response Effects 0.000 abstract description 5
- 230000000875 corresponding effect Effects 0.000 description 33
- 238000010586 diagram Methods 0.000 description 14
- 230000008569 process Effects 0.000 description 8
- 238000004590 computer program Methods 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 5
- 238000012552 review Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 230000000903 blocking effect Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000011161 development Methods 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/953—Querying, e.g. by the use of web search engines
- G06F16/9535—Search customisation based on user profiles and personalisation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
- H04L47/62—Queue scheduling characterised by scheduling criteria
- H04L47/625—Queue scheduling characterised by scheduling criteria for service slots or service orders
- H04L47/6275—Queue scheduling characterised by scheduling criteria for service slots or service orders based on priority
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/42—Mailbox-related aspects, e.g. synchronisation of mailboxes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/52—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail for supporting social networking services
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明公开了一种消息推送的处理方法及相关系统,该方法包括:获取业务服务器创建的各类应用服务的消息,保存在数据库中;并根据预设格式生成推送数据,保存在Redis缓存和/或消息队列中;消息服务器定时轮询所述Redis缓存和/或消息服务器对所述消息队列进行消费,获取推送数据;解析所述推送数据,根据所述推送数据中的用户ID从所述Redis缓存中,查找所述推送类型对应的账号信息;将所述消息内容根据所述推送时间推送给对应的账号信息。该方法将消息和业务服务完全的分离,便于快速读取数据,提高响应的速度,进一步优化了处理的速度;降低服务间的耦合度;实现了支持多方向的推送;支持高并发、支持数据的一致性。
Description
技术领域
本发明涉及计算机技术领域,特别涉及一种消息推送的处理方法及相关系统。
背景技术
信息推送,就是"web广播",是通过一定的技术标准或协议,在互联网上通过定期传送用户需要的信息来减少信息过载的一项新技术。推送技术通过自动传送信息给用户,来减少用于网络上搜索的时间。它根据用户的兴趣来搜索、过滤信息,并将其定期推给用户,帮助用户高效率地发掘有价值的信息。
现有技术中,由于系统涉及到大量的数据的推送,需要提前提醒客户会议的安排时间以及评审项目的进度、新项目的创建等信息的及时推送,然后提醒指定的用户去做指定的代办任务。这样没有一个集中式的消息管理,而且按照传统的逻辑,使得代码的耦合度大大的提高;可扩展性也比较低,而这些消息也没有一个统一的管理。
基于上述问题,如何提供一种消息推送的处理方法,将消息和业务服务完全的分离,实现降低服务间的耦合度;实现支持多方向的推送;实现支持高并发、支持数据的一致性;解决目前消息推送系统中存在的混乱高耦合、扩展性偏低的问题,成为亟待解决的问题。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的一种消息推送的处理方法及相关系统。
第一方面,本发明实施例提供一种消息推送的处理方法,包括:
S100、获取业务服务器创建的各类应用服务的消息,保存在数据库中;并根据预设格式生成推送数据,保存在Redis缓存和/或消息队列中;所述推送数据包括:系统地址、用户ID、消息内容、推送时间及推送类型;
S200、消息服务器定时轮询所述Redis缓存和/或消息服务器对所述消息队列进行消费,获取推送数据;
S300、解析所述推送数据,根据所述推送数据中的用户ID从所述Redis缓存中,查找所述推送类型对应的账号信息;
S400、将所述消息内容根据所述推送时间推送给对应的账号信息。
在一个实施例中,所述推送类型包括:微信、APP、短信、邮箱和QQ。
在一个实施例中,所述步骤S300,包括:
根据所述推送数据中的用户ID在Redis缓存中进行匹配,获得匹配结果;
当所述Redis缓存中不存在与所述推送数据相同的用户ID时;将所述推送数据中的用户ID在所述数据库中进行匹配,获得匹配结果;所述匹配结果包括:所述推送数据所对应的账号信息。
在一个实施例中,所述消息队列用于存储实时的消息数据;所述推送数据还包括:系统标识;根据系统标识,划分为不同类型的消息队列。
在一个实施例中,所述步骤S400还包括:根据不同类型消息队列优先级的高低顺序,依次从不同的消息队列中取出该消息队列中的推送任务,并将所述推送任务分发至对应的处理线程;
通过所述处理线程调用推送任务对应的处理类,将所述消息内容推送给所述推送类型对应的用户账号。
第二方面,本发明实施例提供一种消息推送的处理系统,包括:
创建保存模块,用于获取业务服务器创建的各类应用服务的消息,保存在数据库中;并根据预设格式生成推送数据,保存在Redis缓存和/或消息队列中;所述推送数据包括:系统地址、用户ID、消息内容、推送时间及推送类型;
获取模块,用于消息服务器定时轮询所述Redis缓存和/或消息服务器对所述消息队列进行消费,获取推送数据;
解析模块,用于解析所述推送数据,根据所述推送数据中的用户ID从所述Redis缓存中,查找所述推送类型对应的账号信息;
推送模块,用于将所述消息内容根据所述推送时间推送给对应的账号信息。
在一个实施例中,所述推送类型包括:微信、APP、短信、邮箱和QQ。
在一个实施例中,所述解析模块,包括:
第一匹配子模块,用于根据所述推送数据中的用户ID在Redis缓存中进行匹配,获得匹配结果;
第二匹配子模块,用于当所述Redis缓存中不存在与所述推送数据相同的用户ID时;将所述推送数据中的用户ID在所述数据库中进行匹配,获得匹配结果;所述匹配结果包括:所述推送数据所对应的账号信息。
在一个实施例中,所述创建保存模块中,所述消息队列用于存储实时的消息数据;所述推送数据还包括:系统标识;根据系统标识,划分为不同类型的消息队列。
在一个实施例中,所述推送模块,还用于根据不同类型消息队列优先级的高低顺序,依次从不同的消息队列中取出该消息队列中的推送任务,并将所述推送任务分发至对应的处理线程;通过所述处理线程调用推送任务对应的处理类,将所述消息内容推送给所述推送类型对应的用户账号。
本发明实施例提供的上述技术方案的有益效果至少包括:
本发明实施例提供的一种消息推送的处理方法,获取业务服务器创建的各类应用服务的消息,保存在数据库中;并根据预设格式生成推送数据,保存在Redis缓存和/或消息队列中;所述推送数据包括:系统地址、用户ID、消息内容、推送时间及推送类型;消息服务器定时轮询所述Redis缓存和/或消息服务器对所述消息队列进行消费,获取推送数据;解析所述推送数据,根据所述推送数据中的用户ID从所述Redis缓存中,查找所述推送类型对应的账号信息;将所述消息内容根据所述推送时间推送给对应的账号信息。该方法将消息和业务服务完全的分离,分别独立执行产生消息的处理任务和执行消息推送任务;便于快速读取数据,提高响应的速度,进一步优化了处理的速度;实现了降低服务间的耦合度;实现了支持多方向的推送;实现了支持高并发、支持数据的一致性;可解决目前消息推送系统中存在的混乱高耦合、扩展性偏低的问题。
并且,从消息服务器的角度来说,消息服务器针对消息队列按照其业务的重要程度,划分对应的优先级,并分配对应级别的处理线程分别进行处理,使得优先级较高的,要求响应速度特别快的事件得以优先处理。
而且,整个消息实现采用Java高级网络编程Netty,可以实现高性能、高可靠性的消息推送处理,为高效处理消息推送创造了良好的基础。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
附图说明
附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。在附图中:
图1为本发明实施例提供的消息推送处理的网络架构的示意图;
图2为本发明实施例提供的消息推送的处理方法流程图;
图3为本发明实施例提供的部署项目实施例架构图;
图4为本发明实施例提供的以消息队列推送的时序图;
图5为本发明实施例提供的以Redis缓存推送的时序图;
图6为本发明实施例提供消息推送的处理时序图;
图7为本发明实施例提供的消息推送的处理系统框图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
下面结合附图,对本发明实施例提供的业务流程的处理方法及相关装置和服务器的具体实施方式进行详细的说明。
为了更好地说明本发明实施例提供的消息推送的处理方法,首先对该消息推送的处理方法适用的网络架构进行简单介绍,如图1所示,该网络架构中包含业务服务器的客户端(例如可包括系统运维客户端、会议管理员或项目评审客户端)、第三方缓存数据(包括:消息队列、缓存数据库Redis、数据库)、消息服务器和接收消息推送的用户终端(例如:个人PC、APP终端等等);业务服务器与各客户端之间相连,用于创建客户端的运维消息、项目评审、会议管理等消息;将业务服务器产生的消息,比如实时消息存储到消息队列,如发送邮件,等待消息服务器进行消费;比如将会议消息存储到Redis缓存中,等待消息服务器轮询,在会议开始前预定时间,将消息推送出去。Redis缓存会从数据库中对用户的数据进行缓存;当消息产生时,及用户信息更新时,实时对数据库进行读写操作;上述业务服务器、消息服务器可以采用服务器集群的方式,以应对数量巨大的业务处理量。
本发明实施例提供的消息推送的处理方法,在同一个系统中,业务服务器是负责创建消息的服务器;业务服务器可以有一个或多个,业务服务器有多个时,彼此可以组成应用服务器集群,业务服务器与消息服务器之间并不直接交互,而是通过Redis缓存、消息队列进行数据获取解析,将解析后的消息内容推送到对应的用户账号信息。
参照图2所示,本发明实施例提供的消息推送的处理方法,包括下述步骤:
S100、获取业务服务器创建的各类应用服务的消息,保存在数据库中;并根据预设格式生成推送数据,保存在Redis缓存和/或消息队列中;所述推送数据包括:系统地址、用户ID、消息内容、推送时间及推送类型;
S200、消息服务器定时轮询所述Redis缓存和/或消息服务器对所述消息队列进行消费,获取推送数据;
S300、解析所述推送数据,根据所述推送数据中的用户ID从所述Redis缓存中,查找所述推送类型对应的账号信息;
S400、将所述消息内容根据所述推送时间推送给对应的账号信息。
本发明实施例提供的消息推送的处理方法中,要求服务端以键值对的形式缓存用户的设备信息,其中键为用户的唯一标识符,值为用户接受的数据的设备编号和接受形式(微信、APP等)。比如表1所示:
ID | 设备编号 | 接受形式 |
001 | 微信 | |
001 | APP | APP |
002 | Note | 短信 |
002 | APP | APP |
003 | 邮箱 | |
… | … | … |
推送数据可放入指定的消息队列MQ中,供客户端可进行订阅消费;服务端和客户端采用Netty高级网络编程技术来实现。整体结构如图1所示,数据通过系统录入后,消息服务器会定时的缓存系统的用户数据,用于消息推送给不同的用户。消息队列用来缓存需要推送的数据,所有需要推送的数据,都可放入消息队列当中,然后供消息服务器去消费。消息可推送给个人PC和终端,其中终端包含有各种收到消息的微信公众号、APP、短信、邮箱和QQ等。
比如以微信公众号为例,可以有选择性推送给关注该公众号的若干微信用户。
该方法将消息和业务服务完全的分离,分别独立执行产生消息的处理任务和执行消息推送任务;便于快速读取数据,提高响应的速度,进一步优化了处理的速度;实现了降低服务间的耦合度;实现了支持多方向的推送;实现了支持高并发、支持数据的一致性;可解决目前消息推送系统中存在的混乱高耦合、扩展性偏低的问题。
在一个实施例中,上述步骤S300,包括:
根据所述推送数据中的用户ID在Redis缓存中进行匹配,获得匹配结果;
当所述Redis缓存中不存在与所述推送数据相同的用户ID时;将所述推送数据中的用户ID在所述数据库中进行匹配,获得匹配结果;所述匹配结果包括:所述推送数据所对应的账号信息。
本实施例中,解析出消息要推送的系统地址,根据用户ID从Redis缓存中获取用户对于的账号信息,然后根据获取到的账号信息进行推送消息。另外一种情况是,当Redis缓存中不存在用户的信息时,则需要从数据库中进行检索匹配,最终获得用户的账号信息。
在一个实施例中,所述消息队列用于存储实时的消息数据;所述推送数据还包括:系统标识;根据系统标识,划分为不同类型的消息队列。
本实施例中,消息队列主要是用来存储实时的消息数据,通过消息的发布订阅模式进行消息消费。比如,可根据系统标识进行分类,系统标识包括唯一标识的关键字;
还可以根据账号信息进行分类,微信公众号消息队列、APP消息队列、短信消息队列、邮箱消息队列和QQ消息队列。也可以根据用户群体进行设置不同消息队列;比如,会议消息只推送给主管以上级别的管理人员,不推送给普通的员工。
在一个实施例中,所述步骤S400还包括:根据不同类型消息队列优先级的高低顺序,依次从不同的消息队列中取出该消息队列中的推送任务,并将所述推送任务分发至对应的处理线程;
通过所述处理线程调用推送任务对应的处理类,将所述消息内容推送给所述推送类型对应的用户账号。
例如消息队列分为三个等级:L代表低优先级、N代表中优先级和H代表高优先级,消息队列中推送任务先进先出,不同推送任务的处理线程的处理性能与所处理的消息队列的优先级级别正相关。
较高优先级别的消息队列,可以使用较高性能的处理线程处理,反之,较低优先级别的消息队列,可以使用较低性能的处理线程处理;按照优先级的高低顺序,依次按照先入先出的规则,依次从不同级别的消息队列中取出该队列中的推送任务,并将推送任务分发至对应级别的处理线程;
不同的处理线程的处理能力也不同,总的来说,对应消息队列级别越高的,其线程的处理能力也越高。这样,多线程并行处理,并且,处理能力高的线程,也能够优先处理级别较高的消息队列,可以整体提高处理能力。
下面以消息推送的处理系统部署在机房为例,进行说明:
参照图3所示,该消息服务器操作系统为Windows。消息服务器是整个消息推送的核心,它将业务服务所保存在第三方缓存中的数据(消息队列MQ、Redis缓存、数据库)给不同用户、不同应用进行实时消息推送。每条消息数据是由两部分组成,消息头和消息体,消息头包含有所要推送的:系统标识、系统地址、用户id;消息体是所有推送的消息内容:消息内容、时间和类型组成。类型是为了区分消息,例如该消息为单设备登录还是普通的通知消息以及推送到那个应用软件去(微信、邮箱、QQ等)。
当消息服务器获取到这个消息后,然后根据整个消息的内容解析出消息所要推送的系统地址,根据用户ID然后从缓存中获取用户信息,然后根据获取的消息推送消息,例如(评审平台地址:userId,进行XXX项目评审会议:2020-08-0110:00:APP)。
消息实现的技术为Java高级网络编程Netty,是一个非阻塞的服务端/客户端的API,用以快速开发高性能、高可靠性的网络服务器和客户端程序。Netty是一个基于NIO的客户、服务器端的编程框架,使用Netty可以确保快速和简单的开发出一个网络应用,例如实现了某种协议的客户、服务端应用。Netty相当于简化和流线化了网络应用的编程开发过程,例如:基于TCP和UDP的socket服务开发。由于NIO是非阻塞的,他的并发性能得到了很大提高。当客户端和服务端建立Socket连接后,Thread并不会阻塞去接受这个Socket,而是将这个请求交给Selector,Selector会不断的去遍历所有的Socket,一旦有一个Socket建立完成,他会通知Thread,然后Thread处理完数据再返回给客户端——这个过程是不阻塞的,这样就能让一个Thread处理更多的请求了。
以消息队列推送为例,如图4所示:
MQ消息队列主要是用来存储实时的消息数据,主要是通过消息的发布订阅模式进行消息消息消费,业务数据根据规定好的消息数据格式(系统标识:系统地址:用户ID,消息内容:推送时间:推送类型)将数据发布到MQ中,然后消息服务器根据消息体的数据格式,进行消息消费。每一个消息根据不同的系统标识,也就是MQ中topic,将数据放入不通的消息队列当中,这样消费者可以根据不同的topic把大数据分发到不同的设备中去。其中,topic可根据模糊匹配、一对一等值匹配、全值匹配等进行分为不同的消息队列。
以Redis缓存为例,如图5所示:
存入Redis的为业务的用户信息等缓存数据和需要轮询进行推送的数据。消息服务器有一个轮询器,会定时的轮询Redis的数据,如果一但遇到需要推送到的数据,那么消息服务器会根据数据中所带的用户ID去用户缓存中取出相关的用户信息(要推送的网站地址、用户所持有的设备唯一编号、邮箱、微信等),然后进行推送。
在业务服务器中,当一个会议被创建后,该会议被保存在数据库的同时,系统会组装消息体,然后保存在Redis缓存之中。消息服务器会有一个定时轮询器去检查Redis的消息,一但某个消息到了被推送的时间,那么就会去解析该消息内容,以便确定消息推送到那个客户端去以及推送到什么应用(微信、邮箱、QQ等)。
通过部署该项目,本发明实施例实现了:
1)将消息和业务服务完全的分离来,降低了服务间的耦合度。
2)系统可支持多方向的推送,其中包括微信、APP、QQ、邮箱等。
3)支持高并发、支持数据的高一致性。
本发明实施例提供的消息推送的处理方法,如图6所示,业务数据创建后会同步到消息队列和Redis缓存中去,然后通过消息服务器进行消息的消费或者进行消息轮询了完成消息的推送。
在轮询或者消费MQ队列中的数据时,一但获取此数据,那么系统会自动根据规定的数格式解析推送的数据。根据消息头获取所有推送的系统服务。然后获取用户ID,在Redis里面获取到缓存的用户数据。根据消息体获取所要推送的消息体的内容,以及时间,然后获取推送的方式,比如要推送那种设备上去,APP还是邮箱或者是短信等,最后调用具体的推送消息的代码进行数据推送。
基于同一发明构思,本发明实施例还提供了一种消息推送的处理系统,由于该系统所解决问题的原理与前述消息推送的处理方法相似,因此该系统的实施可以参见前述方法的实施,重复之处不再赘述。
本发明实施例提供的一种消息推送的处理系统,如图1所示,包括:业务服务器和消息服务器;其中:
参照图7所示,所述消息服务器,包括:
创建保存模块71,用于获取业务服务器创建的各类应用服务的消息,保存在数据库中;并根据预设格式生成推送数据,保存在Redis缓存和/或消息队列中;所述推送数据包括:系统地址、用户ID、消息内容、推送时间及推送类型;
获取模块72,用于消息服务器定时轮询所述Redis缓存和/或消息服务器对所述消息队列进行消费,获取推送数据;
解析模块73,用于解析所述推送数据,根据所述推送数据中的用户ID从所述Redis缓存中,查找所述推送类型对应的账号信息;
推送模块74,用于将所述消息内容根据所述推送时间推送给对应的账号信息。
在一个实施例中,所述推送类型包括:微信、APP、短信、邮箱和QQ。
在一个实施例中,所述解析模块73,包括:
第一匹配子模块731,用于根据所述推送数据中的用户ID在Redis缓存中进行匹配,获得匹配结果;
第二匹配子模块732,用于当所述Redis缓存中不存在与所述推送数据相同的用户ID时;将所述推送数据中的用户ID在所述数据库中进行匹配,获得匹配结果;所述匹配结果包括:所述推送数据所对应的账号信息。
在一个实施例中,所述创建保存模块71中,所述消息队列用于存储实时的消息数据;所述推送数据还包括:系统标识;根据系统标识,划分为不同类型的消息队列。
在一个实施例中,所述推送模块74,还用于根据不同类型消息队列优先级的高低顺序,依次从不同的消息队列中取出该消息队列中的推送任务,并将所述推送任务分发至对应的处理线程;通过所述处理线程调用推送任务对应的处理类,将所述消息内容推送给所述推送类型对应的用户账号。
本发明实施例提供的一种消息推送的处理方法及相关系统,通过获取业务服务器创建的各类应用服务的消息,保存在数据库中;并根据预设格式生成推送数据,保存在Redis缓存和/或消息队列中;消息服务器定时轮询Redis缓存和/或消息服务器对消息队列进行消费,获取推送数据;解析推送数据,根据推送数据中的用户ID从Redis缓存中,查找对应的账号信息;将消息内容根据推送时间推送给对应的账号信息。本发明实施例实现了将消息和业务服务完全的分离,便于快速读取数据,提高响应的速度,进一步优化了处理的速度;降低服务间的耦合度;实现了支持多方向的推送;支持高并发、支持数据的一致性。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (10)
1.一种消息推送的处理方法,其特征在于,包括:
S100、获取业务服务器创建的各类应用服务的消息,保存在数据库中;并根据预设格式生成推送数据,保存在Redis缓存和/或消息队列中;所述推送数据包括:系统地址、用户ID、消息内容、推送时间及推送类型;
S200、消息服务器定时轮询所述Redis缓存和/或消息服务器对所述消息队列进行消费,获取推送数据;
S300、解析所述推送数据,根据所述推送数据中的用户ID从所述Redis缓存中,查找所述推送类型对应的账号信息;
S400、将所述消息内容根据所述推送时间推送给对应的账号信息。
2.如权利要求1所述的方法,其特征在于,所述推送类型包括:
微信、APP、短信、邮箱和QQ。
3.如权利要求1所述的方法,其特征在于,所述步骤S300,包括:
根据所述推送数据中的用户ID在Redis缓存中进行匹配,获得匹配结果;
当所述Redis缓存中不存在与所述推送数据相同的用户ID时;将所述推送数据中的用户ID在所述数据库中进行匹配,获得匹配结果;所述匹配结果包括:所述推送数据所对应的账号信息。
4.如权利要求1所述的方法,其特征在于,所述消息队列用于存储实时的消息数据;所述推送数据还包括:系统标识;
根据系统标识,划分为不同类型的消息队列。
5.如权利要求4所述的方法,其特征在于,所述步骤S400还包括:根据不同类型消息队列优先级的高低顺序,依次从不同的消息队列中取出该消息队列中的推送任务,并将所述推送任务分发至对应的处理线程;
通过所述处理线程调用推送任务对应的处理类,将所述消息内容推送给所述推送类型对应的用户账号。
6.一种消息推送的处理系统,其特征在于,包括:
创建保存模块,用于获取业务服务器创建的各类应用服务的消息,保存在数据库中;并根据预设格式生成推送数据,保存在Redis缓存和/或消息队列中;所述推送数据包括:系统地址、用户ID、消息内容、推送时间及推送类型;
获取模块,用于消息服务器定时轮询所述Redis缓存和/或消息服务器对所述消息队列进行消费,获取推送数据;
解析模块,用于解析所述推送数据,根据所述推送数据中的用户ID从所述Redis缓存中,查找所述推送类型对应的账号信息;
推送模块,用于将所述消息内容根据所述推送时间推送给对应的账号信息。
7.如权利要求6所述的系统,其特征在于,所述推送类型包括:
微信、APP、短信、邮箱和QQ。
8.如权利要求6所述的系统,其特征在于,所述解析模块,包括:
第一匹配子模块,用于根据所述推送数据中的用户ID在Redis缓存中进行匹配,获得匹配结果;
第二匹配子模块,用于当所述Redis缓存中不存在与所述推送数据相同的用户ID时;将所述推送数据中的用户ID在所述数据库中进行匹配,获得匹配结果;所述匹配结果包括:所述推送数据所对应的账号信息。
9.如权利要求6所述的系统,其特征在于,所述创建保存模块中,所述消息队列用于存储实时的消息数据;所述推送数据还包括:系统标识;根据系统标识,划分为不同类型的消息队列。
10.如权利要求9所述的系统,其特征在于,所述推送模块,还用于根据不同类型消息队列优先级的高低顺序,依次从不同的消息队列中取出该消息队列中的推送任务,并将所述推送任务分发至对应的处理线程;通过所述处理线程调用推送任务对应的处理类,将所述消息内容推送给所述推送类型对应的用户账号。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010935783.8A CN112256954A (zh) | 2020-09-08 | 2020-09-08 | 一种消息推送的处理方法及相关系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010935783.8A CN112256954A (zh) | 2020-09-08 | 2020-09-08 | 一种消息推送的处理方法及相关系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112256954A true CN112256954A (zh) | 2021-01-22 |
Family
ID=74231867
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010935783.8A Pending CN112256954A (zh) | 2020-09-08 | 2020-09-08 | 一种消息推送的处理方法及相关系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112256954A (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113098758A (zh) * | 2021-03-29 | 2021-07-09 | 河北白沙烟草有限责任公司 | 一种基于企业微信的企业消息推送安全网关系统 |
CN113254465A (zh) * | 2021-05-25 | 2021-08-13 | 四川虹魔方网络科技有限公司 | 缓存最终一致性更新方法 |
CN113329091A (zh) * | 2021-06-04 | 2021-08-31 | 杭州网易云音乐科技有限公司 | 数据管理方法及装置、存储介质、电子设备 |
CN113535862A (zh) * | 2021-07-20 | 2021-10-22 | 江苏创源电子有限公司 | 一种业务数据的推送方法、装置、电子设备及存储介质 |
CN113992462A (zh) * | 2021-11-23 | 2022-01-28 | 京东方科技集团股份有限公司 | 用于推送会议信息的系统及方法、相关设备 |
CN114155828A (zh) * | 2021-11-09 | 2022-03-08 | 国网福建省电力有限公司惠安县供电公司 | 一种基于智能语音的电费催费方法及系统 |
CN114268622A (zh) * | 2021-12-23 | 2022-04-01 | 广东南方新媒体科技有限公司 | 分布式场景下的低延迟高并发多平台稿件发布方法 |
CN114928663A (zh) * | 2022-06-02 | 2022-08-19 | 蜂助手股份有限公司 | 一种识别回调报文的方法及装置 |
CN115665173A (zh) * | 2022-12-05 | 2023-01-31 | 深圳市华曦达科技股份有限公司 | 一种基于MQ的WebSocket通信方法、系统和存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107948242A (zh) * | 2017-10-24 | 2018-04-20 | 上海金大师网络科技有限公司 | 多服务号模板消息发送方法及系统 |
CN108388479A (zh) * | 2018-02-10 | 2018-08-10 | 深圳壹账通智能科技有限公司 | 延迟消息推送方法、装置、计算机设备及存储介质 |
CN108449405A (zh) * | 2018-03-13 | 2018-08-24 | 平安科技(深圳)有限公司 | 事件提醒方法、装置、计算机设备和存储介质 |
CN109698799A (zh) * | 2019-01-14 | 2019-04-30 | 广州荔支网络技术有限公司 | 一种消息推送方法、装置和移动终端 |
CN110417884A (zh) * | 2019-07-23 | 2019-11-05 | 腾讯科技(深圳)有限公司 | 一种消息推送方法、装置、设备及存储介质 |
CN110995566A (zh) * | 2019-10-30 | 2020-04-10 | 深圳震有科技股份有限公司 | 一种消息数据推送方法、系统及装置 |
CN111371892A (zh) * | 2020-03-05 | 2020-07-03 | 中国银行股份有限公司 | 高并发分布式消息推送系统及方法 |
-
2020
- 2020-09-08 CN CN202010935783.8A patent/CN112256954A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107948242A (zh) * | 2017-10-24 | 2018-04-20 | 上海金大师网络科技有限公司 | 多服务号模板消息发送方法及系统 |
CN108388479A (zh) * | 2018-02-10 | 2018-08-10 | 深圳壹账通智能科技有限公司 | 延迟消息推送方法、装置、计算机设备及存储介质 |
CN108449405A (zh) * | 2018-03-13 | 2018-08-24 | 平安科技(深圳)有限公司 | 事件提醒方法、装置、计算机设备和存储介质 |
CN109698799A (zh) * | 2019-01-14 | 2019-04-30 | 广州荔支网络技术有限公司 | 一种消息推送方法、装置和移动终端 |
CN110417884A (zh) * | 2019-07-23 | 2019-11-05 | 腾讯科技(深圳)有限公司 | 一种消息推送方法、装置、设备及存储介质 |
CN110995566A (zh) * | 2019-10-30 | 2020-04-10 | 深圳震有科技股份有限公司 | 一种消息数据推送方法、系统及装置 |
CN111371892A (zh) * | 2020-03-05 | 2020-07-03 | 中国银行股份有限公司 | 高并发分布式消息推送系统及方法 |
Non-Patent Citations (2)
Title |
---|
田萍芳: "《面向云出版的语义关键技术》", 30 April 2015 * |
钟林森: "《分布式中间件技术实战》", 30 November 2019 * |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113098758A (zh) * | 2021-03-29 | 2021-07-09 | 河北白沙烟草有限责任公司 | 一种基于企业微信的企业消息推送安全网关系统 |
CN113254465A (zh) * | 2021-05-25 | 2021-08-13 | 四川虹魔方网络科技有限公司 | 缓存最终一致性更新方法 |
CN113254465B (zh) * | 2021-05-25 | 2022-11-01 | 四川虹魔方网络科技有限公司 | 缓存最终一致性更新方法 |
CN113329091B (zh) * | 2021-06-04 | 2022-08-26 | 杭州网易云音乐科技有限公司 | 数据管理方法及装置、存储介质、电子设备 |
CN113329091A (zh) * | 2021-06-04 | 2021-08-31 | 杭州网易云音乐科技有限公司 | 数据管理方法及装置、存储介质、电子设备 |
CN113535862A (zh) * | 2021-07-20 | 2021-10-22 | 江苏创源电子有限公司 | 一种业务数据的推送方法、装置、电子设备及存储介质 |
CN114155828A (zh) * | 2021-11-09 | 2022-03-08 | 国网福建省电力有限公司惠安县供电公司 | 一种基于智能语音的电费催费方法及系统 |
CN113992462A (zh) * | 2021-11-23 | 2022-01-28 | 京东方科技集团股份有限公司 | 用于推送会议信息的系统及方法、相关设备 |
CN113992462B (zh) * | 2021-11-23 | 2024-06-18 | 京东方科技集团股份有限公司 | 用于推送会议信息的系统及方法、相关设备 |
CN114268622A (zh) * | 2021-12-23 | 2022-04-01 | 广东南方新媒体科技有限公司 | 分布式场景下的低延迟高并发多平台稿件发布方法 |
CN114928663A (zh) * | 2022-06-02 | 2022-08-19 | 蜂助手股份有限公司 | 一种识别回调报文的方法及装置 |
CN115665173A (zh) * | 2022-12-05 | 2023-01-31 | 深圳市华曦达科技股份有限公司 | 一种基于MQ的WebSocket通信方法、系统和存储介质 |
CN115665173B (zh) * | 2022-12-05 | 2023-03-17 | 深圳市华曦达科技股份有限公司 | 一种基于MQ的WebSocket通信方法、系统和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112256954A (zh) | 一种消息推送的处理方法及相关系统 | |
CN107018042B (zh) | 用于在线服务系统的追踪方法及追踪系统 | |
US7836123B2 (en) | System and method for non-HTTP session based publish/subscribe support using pre-emptive subscriptions | |
CN112506743B (zh) | 一种日志监控方法、装置和服务器 | |
US7680940B2 (en) | Method and system for managing dynamic associations between folksonomic data and resources | |
CN108073625B (zh) | 用于元数据信息管理的系统及方法 | |
US20050038791A1 (en) | System and method for event notification | |
US20180349178A1 (en) | A method and system for scalable job processing | |
WO2019014114A1 (en) | SCALING OF HOSTS IN DISTRIBUTED EVENT MANAGEMENT SYSTEMS | |
US7383266B2 (en) | Just-in-time publishing via a publish/subscribe messaging system having message publishing controls | |
CN104536965B (zh) | 一种大数据条件下的数据查询展示系统及方法 | |
US8037153B2 (en) | Dynamic partitioning of messaging system topics | |
CN106230922A (zh) | 一种消息订阅方法、消息生产单元及消息接收单元 | |
CN111475315B (zh) | 服务器及订阅通知推送控制、执行方法 | |
US7788330B2 (en) | System and method for processing data associated with a transmission in a data communication system | |
WO2019005446A1 (en) | PROVIDING MULTIMEDIA CONTENT TO SUBSCRIBERS OF A MESSAGING SYSTEM | |
CN113485806A (zh) | 处理任务的方法、装置、设备和计算机可读介质 | |
CN117041623A (zh) | 一种数字人直播方法和装置 | |
CN113422808A (zh) | 物联网平台http信息推送方法、系统、装置及介质 | |
CN110913018A (zh) | 一种分布式调控服务系统 | |
CN110839061B (zh) | 数据分发方法、装置及存储介质 | |
CN112307046A (zh) | 数据采集方法和装置、计算机可读存储介质、电子设备 | |
Hassan et al. | A dynamic and fast event matching algorithm for a content-based publish/subscribe information dissemination system in Sensor-Grid | |
CN110929130A (zh) | 一种基于分布式调度的公安部级审计数据查询方法 | |
CN116095079A (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20210122 |
|
RJ01 | Rejection of invention patent application after publication |