CN112256954A - 一种消息推送的处理方法及相关*** - Google Patents

一种消息推送的处理方法及相关*** Download PDF

Info

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
Application number
CN202010935783.8A
Other languages
English (en)
Inventor
彭正伟
张维
李钧超
陈丹
丁丽霞
王龙
张辰
巩鑫龙
杨凯
尤菲
任凤琴
闫志杰
张玲珠
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Economic and Technological Research Institute of State Grid Ningxia Electric Power Co Ltd
Original Assignee
Economic and Technological Research Institute of State Grid Ningxia Electric Power Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Economic and Technological Research Institute of State Grid Ningxia Electric Power Co Ltd filed Critical Economic and Technological Research Institute of State Grid Ningxia Electric Power Co Ltd
Priority to CN202010935783.8A priority Critical patent/CN112256954A/zh
Publication of CN112256954A publication Critical patent/CN112256954A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/953Querying, e.g. by the use of web search engines
    • G06F16/9535Search customisation based on user profiles and personalisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/62Queue scheduling characterised by scheduling criteria
    • H04L47/625Queue scheduling characterised by scheduling criteria for service slots or service orders
    • H04L47/6275Queue scheduling characterised by scheduling criteria for service slots or service orders based on priority
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/42Mailbox-related aspects, e.g. synchronisation of mailboxes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/52User-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 WeChat 微信
001 APP APP
002 Note 短信
002 APP APP
003 Email 邮箱
推送数据可放入指定的消息队列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所述的***,其特征在于,所述推送模块,还用于根据不同类型消息队列优先级的高低顺序,依次从不同的消息队列中取出该消息队列中的推送任务,并将所述推送任务分发至对应的处理线程;通过所述处理线程调用推送任务对应的处理类,将所述消息内容推送给所述推送类型对应的用户账号。
CN202010935783.8A 2020-09-08 2020-09-08 一种消息推送的处理方法及相关*** Pending CN112256954A (zh)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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 中国银行股份有限公司 高并发分布式消息推送***及方法

Patent Citations (7)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
Title
田萍芳: "《面向云出版的语义关键技术》", 30 April 2015 *
钟林森: "《分布式中间件技术实战》", 30 November 2019 *

Cited By (13)

* Cited by examiner, † Cited by third party
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) 一种消息推送的处理方法及相关***
US7836123B2 (en) System and method for non-HTTP session based publish/subscribe support using pre-emptive subscriptions
CN108365971A (zh) 日志解析方法、设备及计算机可读介质
US7680940B2 (en) Method and system for managing dynamic associations between folksonomic data and resources
US20050038791A1 (en) System and method for event notification
CN110515912A (zh) 日志处理方法、装置、计算机装置及计算机可读存储介质
CN108073625B (zh) 用于元数据信息管理的***及方法
US20180349178A1 (en) A method and system for scalable job processing
WO2019014114A1 (en) SCALING OF HOSTS IN DISTRIBUTED EVENT MANAGEMENT SYSTEMS
CN104536965B (zh) 一种大数据条件下的数据查询展示***及方法
US8037153B2 (en) Dynamic partitioning of messaging system topics
CN106230922A (zh) 一种消息订阅方法、消息生产单元及消息接收单元
US8090873B1 (en) Methods and systems for high throughput information refinement
US20190005534A1 (en) Providing media assets to subscribers of a messaging system
US7788330B2 (en) System and method for processing data associated with a transmission in a data communication system
CN117041623A (zh) 一种数字人直播方法和装置
CN113485806A (zh) 处理任务的方法、装置、设备和计算机可读介质
CN111475315B (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
CN116775420A (zh) 基于Flink流计算的信创云平台资源展示和预警方法及***
CN110929130A (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