CN113824763A - 消息推送方法、装置、计算机设备和存储介质 - Google Patents
消息推送方法、装置、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN113824763A CN113824763A CN202110913757.XA CN202110913757A CN113824763A CN 113824763 A CN113824763 A CN 113824763A CN 202110913757 A CN202110913757 A CN 202110913757A CN 113824763 A CN113824763 A CN 113824763A
- Authority
- CN
- China
- Prior art keywords
- message
- pushing
- target
- user
- user side
- 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
- 238000000034 method Methods 0.000 title claims abstract description 67
- 238000004590 computer program Methods 0.000 claims description 13
- 230000000694 effects Effects 0.000 abstract description 5
- 238000000926 separation method Methods 0.000 abstract description 3
- 238000010586 diagram Methods 0.000 description 13
- 238000001914 filtration Methods 0.000 description 4
- 238000012216 screening Methods 0.000 description 3
- 239000002699 waste material Substances 0.000 description 2
- 239000002253 acid Substances 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
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/50—Network services
- H04L67/55—Push-based network services
-
- 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/901—Indexing; Data structures therefor; Storage structures
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本申请涉及一种消息推送方法、装置、计算机设备和存储介质。所述方法通过获取已创建的消息,并将消息存储在预设数据库中,再通过访问预设数据库向至少一个用户端推送消息。其中,预设数据库中包括发件箱、消息箱和收件箱。上述消息推送的方法中,将预设数据库拆分为了发件箱、消息箱和收件箱,在消息推送过程中消息管理服务器在每次获取到已创建的消息只需要在发件箱中写入一次发件记录,在需要推送消息时,用户端只需要读取收件箱中的收件记录即可实现消息的推送,实现了消息推送过程中的读写分离,即发件箱写多读少,收件箱写少读多的效果,避免了传统的使用一张表格进行消息记录时需要多次的读写操作,因而极大的提高了消息的推送效率。
Description
技术领域
本申请涉及消息处理技术领域,特别是涉及一种消息推送方法、装置、计算机设备和存储介质。
背景技术
随着微服务架构模式的应用系统被大量开发使用,基于发件箱模式的消息管理与推送方法得到了广泛应用。
目前,基于微服务架构模式的应用系统,常常会利用中间件,比如,kafka、rabbitmq等组件,来实现各个微服务之间的通信。对于用户的某个操作,一个微服可能需要执行“存数据库”和“发送事件”两个步骤。这样一来一方面增加了消息中间件的服务,使得系统环境变得复杂,另一方面由于牵扯到两个系统,数据库事务和中间件的服务并不能保证整个操作的事务性(ACID),至多能保证各个子系统的事务性,最终会造成数据不一致的情况出现,为了解决这个问题需要引入分布式事务,极大增加了系统的开发复杂度与维护成本,特别是针对消息体量小的场景中,这样的架构是一种极大的资源浪费。
发明内容
基于此,有必要针对上述技术问题,提供一种能够提高消息推送效率的消息推送方法、装置、计算机设备和存储介质。
第一方面,一种消息推送方法,所述方法包括:
获取已创建的消息;
将所述消息存储在预设数据库中;所述预设数据库中包括发件箱、消息箱和收件箱;所述发件箱中包括所述消息的发件记录,所述消息箱中包括所述消息的消息内容,所述收件箱中包括所述消息的收件记录;
通过访问所述预设数据库向至少一个用户端推送所述消息。
在其中一个实施例中,所述通过访问所述预设数据库向至少一个用户端推送所述消息,包括:
通过读取所述收件箱中的收件记录的方式向至少一个用户端推送所述消息。
在其中一个实施例中,所述通过读取所述收件箱中的收件记录的方式向至少一个用户端推送所述消息,包括:
根据所述收件记录中记录的收件用户标识确定目标用户端;
根据所述收件记录中记录的与所述目标用户端的目标用户标识对应的消息标识,从所述消息箱中读取目标消息内容;
将所述目标消息内容推送至所述目标用户端。
在其中一个实施例中,所述根据所述收件记录中记录的收件用户标识确定目标用户端,包括:
将所述收件记录中记录的所有收件用户标识对应的用户端确定为目标用户端。
在其中一个实施例中,所述根据所述收件记录中记录的收件用户标识确定目标用户端,包括:
接收用户端发送的读取请求;所述读取请求包括目标用户标识;
从所述收件记录中记录的所有收件用户标识中查找所述目标用户标识,若查找到所述目标用户标识,则将所述用户端确定为所述目标用户端。
在其中一个实施例中,所述将所述目标消息内容推送至所述目标用户端之后,所述方法还包括:
更新所述收件记录中与所述目标用户标识关联的消息状态。
在其中一个实施例中,所述方法还包括:
根据预设的配置信息确定推送消息的消息模板;
所述将所述目标消息内容推送至所述目标用户端,包括:
将所述目标消息内容添加到所述消息模板中生成预设版本的目标消息;
将所述预设版本的目标消息推送至所述目标用户端。
第二方面,一种消息推送装置,所述装置包括:
获取模块,用于获取已创建的消息;
存储模块,用于将所述消息存储在预设数据库中;所述预设数据库中包括发件箱、消息箱和收件箱;所述发件箱中包括所述消息的发件记录,所述消息箱中包括所述消息的消息内容,所述收件箱中包括所述消息的收件记录;
推送模块,用于通过访问所述预设数据库向至少一个用户端推送所述消息。
第三方面,一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述第一方面所述的方法。
第四方面,一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面所述的方法。
上述消息推送方法、装置、计算机设备和存储介质,通过获取已创建的消息,并将消息存储在预设数据库中,再通过访问预设数据库向至少一个用户端推送消息。其中,预设数据库中包括发件箱、消息箱和收件箱。上述消息推送的方法中,将预设数据库拆分为了发件箱、消息箱和收件箱,在消息推送过程中消息管理服务器在每次获取到已创建的消息只需要在发件箱中写入一次发件记录,在需要推送消息时,用户端只需要读取收件箱中的收件记录即可实现消息的推送,实现了消息推送过程中的读写分离,即发件箱写多读少,收件箱写少读多的效果,避免了传统的使用一张表格进行消息记录时需要多次的读写操作,尤其是在群发或广播时大批量的进行数据库的读写操作,因而极大的提高了消息的推送效率。另外,如果消息管理服务器上存在大量的僵尸用户,则传统的消息推送过程中会在数据库中插入大量的无用数据,对存储资源造成了大量的浪费,而上述方法获取到已创建的消息时只需要插入一条发件记录,一条消息内容,相同的内容只存储一份,减少了数据库的IO操作,不同的用户端可根据收件箱中的收件记录主动拉取消息,对消息的不同操作,只需要在收件箱中插入对应的关联状态,而未登录的用户端或僵尸用户端则无需在数据库中保存其消息状态,而占用资源。所以上述消息推送方法可以在一定程度上节省资源,且提高消息推送速度。
附图说明
图1为一个实施例中消息管理应用系统的结构示意图;
图1A为一个实施例中预设数据库的示意图;
图2为一个实施例中消息推送方法的流程示意图;
图3为一个实施例中消息推送方法的流程示意图;
图4为一个实施例中消息推送方法的流程示意图;
图5为一个实施例中消息推送方法的流程示意图;
图6为一个实施例中消息推送系统的结构示意图;
图7为一个实施例中消息推送方法的流程示意图;
图8为一个实施例中消息推送方法的流程示意图;
图9为一个实施例中消息推送装置的结构框图;
图10为一个实施例中消息推送装置的结构框图;
图11为一个实施例中消息推送装置的结构框图;
图12为一个实施例中消息推送装置的结构框图;
图13为一个实施例中消息推送装置的结构框图;
图14为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请提供的消息推送方法,可以应用于如图1所示的消息管理应用系统中,该消息管理应用系统包括第一用户端102,消息管理服务器104,至少一个第二用户端103,其中,第一用户端102与消息管理服务器104通过网络进行通信,各第二用户端103与消息管理服务器104通过网络进行通信。第一用户端102上安装业务系统,用户在第一用户端102上执行相应的业务操作,触发业务系统中的消息创建模块创建消息,并将创建的消息发送至消息管理服务器104,由消息管理服务器104负责将该消息推送给各第二用户端103,或者由消息管理服务器104将消息广播出去。其中,第一用户端102或第二用户端103可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备,消息管理服务器104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。需要说明的是,图1的消息管理应用系统仅是一种示例性说明,并不构成对应用系统结构的限定。
本领域技术人员可以理解,图1中示出的应用系统的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的应用系统的结构限定,具体的应用系统可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,如图2所示,提供了一种消息推送方法,以该方法应用于图1中的消息管理服务器为例进行说明,包括以下步骤:
S101,获取已创建的消息。
以如图1所示的消息管理应用系统举例说明,在一种应用场景中,第一用户端上可以安装业务系统,用户在第一用户端上执行相应的业务操作,触发业务系统中的消息创建模块创建消息,第一用户端再将创建的消息发送至消息管理服务器,消息管理服务器接收到第一用户端发送的消息后将接收到的消息作为已创建的消息。在另一种应用场景中,第一用户端向管理服务器发送消息推送请求,消息管理服务器上的业务系统根据消息推送请求触发创建消息,得到已创建的消息。
S102,将消息存储在预设数据库中;预设数据库中包括发件箱、消息箱和收件箱。
其中,发件箱中包括消息的发件记录,消息箱中包括消息的消息内容(消息的内容),收件箱中包括消息的至少一条收件记录,每条收件记录对应一个收件用户。发件记录包括发件用户标识,消息标识,收件用户标识,收件记录包括收件用户标识,消息标识,消息状态,每个收件用户标识对应一条消息状态,用于表示每个收件用户操作消息的状态(具体可参见图1A所示的预设数据库的示意图)。需要说明的是,若发件箱中包含一个消息对应的一条发件记录,则消息箱中包括该消息的消息内容,收件箱中包含该消息对应的至少一条收件记录。而且,图1A只是示意性说明,并不构成对预设数据库中发件箱、收件箱和消息箱中数据的存储模式进行限定。
本实施例中,当消息管理服务器获取到已创建的消息时,可以将该消息存储在预设数据库中,具体的,可以将该消息的发件记录存储在预设数据库中的发件箱中,使发件箱中记录有发件用户标识、所有可接收该消息的收件用户标识和消息标识;以及将该消息的收件记录存储在预设数据库中的收件箱中,使收件箱中记录有消息标识和所有可读取该消息的收件用户标识,以及每个收件用户对消息操作后的消息状态;并且,将该消息的消息内容存储在预设数据库中的消息箱中。比如,张三需要发送一篇文章给消息管理服务器上对应的所有用户,所以在产生发送该文章的消息时,将发送该消息的记录(比如张三发送给所有人)写入发件箱中,将消息体(文章)存储至消息箱中,将接收该消息的记录(比如李四读取该消息)写入收件箱中。
S103,通过访问预设数据库向至少一个用户端推送消息。
在一种应用场景中,当消息管理服务器将已创建的消息存储至预设数据库中时,即可根据发件箱中的发件记录将创建的消息的消息内容发送给发件记录中的所有收件用户,具体发送时,消息管理服务器直接从消息箱中读取出消息内容后,可以通过广播的形式将消息内容广播出去,不关注接收用户是否成功接收或读取;可选的,消息管理服务器也可以先根据发件记录中记录的各收件用户的标识找到对应的用户端建立连接,并从消息箱中读取出与各用户标识对应的消息内容,然后将消息内容对应的依次发送给各用户端,同时可以将各用户端接收消息的状态记录在收件箱中的收件记录中。
在另一种应用场景中,当消息管理服务器将已创建的消息存储至预设数据库中时,消息管理服务器可以等待用户端登录读取消息,即通过用户端主动拉取的方式将消息推送给用户端。具体的,用户端可以读取收件箱中收件记录,并根据收件记录读取消息箱中的消息内容。当用户端登录读取消息后,消息管理服务器可以实时更新收件箱中的收件记录。
上述实施例提供的消息推送方法,通过获取已创建的消息,并将消息存储在预设数据库中,再通过访问预设数据库向至少一个用户端推送消息。其中,预设数据库中包括发件箱、消息箱和收件箱。上述消息推送的方法中,将预设数据库拆分为了发件箱、消息箱和收件箱,在消息推送过程中消息管理服务器在每次获取到已创建的消息只需要在发件箱中写入一次发件记录,在需要推送消息时,用户端只需要读取收件箱中的收件记录即可实现消息的推送,实现了消息推送过程中的读写分离,即发件箱写多读少,收件箱写少读多的效果,避免了传统的使用一张表格进行消息记录时需要多次的读写操作,尤其是在群发或广播时大批量的进行数据库的读写操作,因而极大的提高了消息的推送效率。另外,如果消息管理服务器上存在大量的僵尸用户,则传统的消息推送过程中会在数据库中插入大量的无用数据,对存储资源造成了大量的浪费,而上述方法获取到已创建的消息时只需要插入一条发件记录,一条消息内容,相同的内容只存储一份,减少了数据库的IO操作,不同的用户端可根据收件箱中的收件记录主动拉取消息,对消息的不同操作,只需要在收件箱中插入对应的关联状态,而未登录的用户端或僵尸用户端则无需在数据库中保存其消息状态,而占用资源。所以上述消息推送方法可以在一定程度上节省资源,且提高消息推送速度。
在一个实施例中,提供了上述S103的一种实现方式,具体该方式包括:通过读取收件箱中的收件记录的方式向至少一个用户端推送消息。
本实施例涉及通过用户端主动拉取消息的方式来实现消息管理服务器的消息推送。具体的,消息管理服务器在需要将数据库中存储的已创建的消息推送出去时,可以先读取收件箱中的收件记录,并将消息同时或依次推送给收件记录上记录的所有收件用户或部分收件用户。
进一步的,提供了上述步骤:“通过读取收件箱中的收件记录的方式向至少一个用户端推送消息”的具体实现方式,如图3所示,该方法包括:
S201,根据收件记录中记录的收件用户标识确定目标用户端。
其中,目标用户端是当下消息管理服务器要推送消息的用户端。
当消息管理服务器通过收件箱推送消息时,可以先读取收件记录,获取到其中记录的收件用户标识,然后通过预设筛选规则从记录的所有收件用户标识中筛选出部分收件用户标识,再将筛选出的部分收件用户标识对应的用户端确定为目标用户端。其中预设筛选规则可以预先根据实际应用需求确定,比如,预设筛选规则可以为将优先级高的用户端作为优质用户端筛选出来,或者,预设筛选规则还可以为将具备读取消息权限的用户端筛选出来,或者,预设筛选规则还可以是将对要推送的消息感兴趣程度高的用户端筛选出来,等等。
可选的,当消息管理服务器根据收件记录中记录的收件用户标识确定目标用户端时,还可以执行步骤:将收件记录中记录的所有收件用户标识对应的用户端确定为目标用户端,即不用进行筛选,无差别的对收件记录中记录的所有收件用户推送消息。
可选的,消息管理服务器还可以采用如图4所示的方式确定目标用户端,即该方式包括:
S2011,接收用户端发送的读取请求。
其中,读取请求包括目标用户标识。用户端为登录消息管理服务器所在平台获取消息的用户端,所以目标用户标识为用户端的标识。本实施例涉及登录的用户端主动拉取消息的方式,即,在实际应用中,需要登录消息管理服务器所在平台获取消息的用户端可以先登录消息管理服务器所在平台,再向消息管理服务器发送携带自身用户标识的读取请求,以指示消息管理服务器向该用户端推送所需的消息。
S2012,从收件记录中记录的所有收件用户标识中查找目标用户标识,若查找到目标用户标识,则将用户端确定为目标用户端。
当消息管理服务器接收到用户端发送的读取请求时,解析读取请求并从中提取出目标用户标识,然后从收件箱的收件记录中查找是否存在与目标用户标识一致的收件用户标识,若存在,则确定查找到目标用户标识,此种情况下将发送读取请求的用户端确定为目标用户端
S202,根据收件记录中记录的与目标用户端的目标用户标识对应的消息标识,从消息箱中读取目标消息内容。
其中,目标用户标识为上述通过预设筛选规则筛选出来的收件用户标识。因为收件记录中可以记录多个消息对应的收件用户标识和消息标识,因此收件记录中记录了收件用户标识和消息标识的对应关系,方便消息管理服务器可以根据任意收件用户标识找到对应要推送的消息。
本实施例中,当消息管理服务器确定了目标用户端后,即可根据目标用户端的目标用户标识在收件记录中找到与目标用户标识对应的消息标识,然后根据该消息标识从消息箱中读取出于该消息标识对应的消息内容,并将读取出的消息内容作为目标消息内容准备推送。
S203,将目标消息内容推送至目标用户端。
当消息管理服务器读取出要推送的目标消息内容时,即可将该目标消息内容直接推送至目标用户端,目标用户端可以是一个,也可以是多个,若存在多个目标用户端时,消息管理服务器可以将目标消息内容同时推送给多个目标用户端,也可以依次将目标消息内容推送给多个目标用户端。
在实际应用中,收件记录中还记录有收件用户对每条消息的操作状态,即消息状态,比如,已读、未读、删除等操作状态,基于此,消息管理服务器在执行完上述S203的步骤,将目标消息内容推送至目标用户端后,还可以执行步骤:更新收件记录中与目标用户标识关联的消息状态。
可选的,本实施例中的收件记录中记录的每个收件用户标识均关联有相应的消息状态,代表每个收件用户标识对应的用户端对消息操作的状态,若消息管理服务器将消息推送给目标用户端,则认为目标用户端已读取该消息;相应的,若消息管理服务器并未成功将消息推送给目标用户端,则认为目标用户端未读取该消息;若消息管理服务器主动将消息删除或者用户端要求消息管理服务器将消息删除,则认为目标用户端已删除该消息。基于此应用,当消息管理服务器向目标用户端推送消息后,或者对消息进行了相应的操作后,即可根据目标用户端的目标用户标识在收件记录中找到关联的消息状态,并实时更新该消息状态,比如,收件记录中记录有“用户标识A消息A已读”。上述方法实现了当不同的用户端登录消息管理服务器所在平台拉取消息时,对消息的不同操作,只需要在收件箱中插入收件用户标识关联的消息状态即可,未登录用户端则无需在数据库中保存其消息状态,减少资源的消耗和占用。
本申请提供的消息推送方法,还可以实现根据用户需求对要推送的消息进行配置,对不同类型的消息设置消息模板与接收方式,具体执行步骤:根据预设的配置信息确定推送消息的消息模板。
其中,配置信息包括用户订阅的消息接收方式,比如,邮件、微信、短信等不同的接收方式,和/或定时接收还是触发接收等不同接收方式。配置信息还包括多种类型的消息对应的消息模板。
对应的,消息管理服务器在执行上述S203步骤“将目标消息内容推送至目标用户端”时,具体执行如下步骤:
S301,将目标消息内容添加到消息模板中生成预设版本的目标消息。
当消息管理服务器获取到目标消息内容时,可以先根据预设的配置信息确定推送该目标消息内容的消息模板,然后将目标消息内容添加到确定的消息模板中,得到预设版本的目标消息,比如,若用户设置的配置信息中包含的消息接收方式为邮件方式,则消息管理服务器可以从诸多消息模板中找到邮件式的消息模板,然后消息管理服务器可以将目标消息内容添加到邮件式的消息模板,生成邮件式版本的目标消息。
S302,将预设版本的目标消息推送至目标用户端。
当消息管理服务器获取到预设版本的目标消息时,即可按照预配置的接收方式(比如,定时还是触发接收)将预设版本的目标消息推送至目标用户端。需要说明的是,多种类型的消息模板可以由消息管理服务器从消息模板数据库中获取,然后当消息管理服务器获取到目标消息内容时,可以进一步的从配置信息中确定用户定义的消息接收方式,然后从多种类型的消息模板中确定与消息接收方式对应的消息模板,然后将目标消息内容添加到消息模板中进行封装,再把封装后的消息推送至目标用户端。上述实施例所述的方法实现了支持对消息模板进行自定义配置,可以满足用户需求展示消息的同时,也可以丰富消息的展示形式。
综合上述所有实施例,本申请还提供了应用上述消息推送方法的消息推送系统,如图6所示,该消息推送系统包括:第一用户端、消息管理服务器,第二用户端,其中,第一用户端上安装业务系统,消息管理服务器包括消息存储端点、消息查询和管理端点、应用服务模块、消息存储适配器、消息推送适配器和消息配置存储适配器,应用服务模块包括消息存储服务组件、消息配置服务组件和消息排队和分发服务组件,消息存储服务组件中包括预设数据库,预设数据库中包括发件箱、收件箱和消息箱。
应用上述消息推送系统实现消息推送的原理为:用户在第一用户端上执行相应的业务操作,触发业务系统中的消息创建模块创建消息,第一用户端将创建的消息通过消息存储端点存储至应用服务模块中的消息存储服务组件中,消息存储适配器再按照消息存储服务组件中的收件箱中的收件记录读取要推送的消息,并将要推送的消息发送至消息排队和分发服务组件,消息排队和分发服务组件将要推送的消息通过广播的形式广播出去,或者推送给第二用户端,或者将要推送的消息的消息内容发送给消息配置服务组件,在消息配置服务组件对消息内容进行配置后再将消息推送给第二用户端。在一种应用中,作为接收消息的第二用户端的用户还可以负责对消息的订阅和消息分类,即第二用户端的用户预先设置消息的配置信息,实现对接收方式的设定,然后将配置信息通过消息查询和管理端点发送至消息配置服务组件,使消息配置组件根据用户设定的配置信息和消息配置存储适配器从消息配置存储服务器上获取到的消息模板,将消息排队和分发服务组件发送过来的消息内容对要推送的消息进行配置,得到配置好的消息,最后将配置好的消息推送给第二用户端。可选的,该消息推送系统中还提供了消息推送适配器,用于辅助实现消息推送,消息推送适配器为一种预留的扩展接口,与第三方的消息推送服务器连接,用于在消息体量增加到一定程度之后或消息体量很大的时候,方便的集成消息中间件实现整个消息推送系统的升级。
具体的,应用如图6所示的系统可以实现图2-图5任一项实施例所述的消息推送方法,也可以实现如图7所示消息推送方法,如图7所示,该方法包括:
S401,获取第一用户端创建的消息。
S402,将消息存储在预设数据库中;预设数据库中包括发件箱、消息箱和收件箱。
S403,接收第二用户端发送的读取请求,读取请求包括目标用户标识。
S404,从收件记录中记录的所有收件用户标识中查找目标用户标识,若查找到目标用户标识,则将用户端确定为目标用户端。
S405,根据收件记录中记录的与目标用户端的目标用户标识对应的消息标识,从消息箱中读取目标消息内容。
S406,获取第二用户端输入的配置信息,配置信息包括推送消息的接收方式。
S407,根据配置信息中的接收方式从消息模板存储数据库中获取推送目标消息内容对应的消息模板。
S408,将目标消息内容添加到消息模板中生成预设版本的目标消息。
S409,按照配置信息中的接收方式,将预设版本的目标消息推送至目标用户端。
上述各步骤在前述都有说明,详细内容请参见前述说明,此处不赘述。
具体的,应用如图6所示的系统可以实现图2-图5任一项实施例所述的消息推送方法,也可以实现如图8所示消息推送方法,如图8所示,其中,一个用户执行操作,该用户的用户终端上的业务系统响应该操作,用户终端创建对应的消息,之后,用户终端将创建的消息发送至消息中心,消息中心将消息存储至预设数据库中,具体的将消息类型、内容、接收者和发送者等相关信息存储至预设数据库,预设数据库包括发件箱、接收箱和消息箱。
消息中心还可以预先接收用户终端发出的用户订阅消息,并根据用户订阅消息预先配置用户接收消息的类型或方式,得到用户订阅消息配置信息,当消息中心存储了用户创建的消息时,消息中心还可以读取预先配置好的用户订阅消息配置信息,确定消息分发方式,同时,用户还可以对不同消息分类设置消息模板,然后在实际应用中,消息中心还可以预先接收用户定义消息分类,并根据存储的消息分类和对应的消息模板,以及上述确定的消息分发方式确定推送线下消息,最后将确定的线下消息广播出去,相应的更新数据库中存储的消息的消息状态。
在另一种应用场景中,消息中心还可以在接收到线上用户的登录请求后,线上推送消息,具体的,消息中心可以根据存储的消息分类和对应的消息模板,以及上述确定的消息分发方式确定推送线上消息,并将线上消息推送给线上用户,线上用户对推送的消息进行操作,并将操作信息发送至消息中心,消息中心相应更新预设数据库中存储的消息的消息状态。
应该理解的是,虽然图2-8的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2-8中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图9所示,提供了一种消息推送装置,包括:
获取模块11,用于获取已创建的消息。
存储模块12,用于将所述消息存储在预设数据库中;所述预设数据库中包括发件箱、消息箱和收件箱;所述发件箱中包括所述消息的发件记录,所述消息箱中包括所述消息的消息内容,所述收件箱中包括所述消息的收件记录。
推送模块13,用于通过访问所述预设数据库向至少一个用户端推送所述消息。
在一个实施例中,上述推送模块13具体用于通过读取所述收件箱中的收件记录的方式向至少一个用户端推送所述消息。
在一个实施例中,上述推送模块13,如图10所示,包括:
确定单元131,用于根据所述收件记录中记录的收件用户标识确定目标用户端;
读取单元132,用于根据所述收件记录中记录的与所述目标用户端的目标用户标识对应的消息标识,从所述消息箱中读取目标消息内容;
推送单元133,用于将所述目标消息内容推送至所述目标用户端。
在一个实施例中,上述确定单元131具体用于将所述收件记录中记录的所有收件用户标识对应的用户端确定为目标用户端。
在一个实施例中,上述确定单元131,如图11所示,包括:
接收子单元1311,用于接收用户端发送的读取请求;所述读取请求包括目标用户标识;
确定子单元1312,用于从所述收件记录中记录的所有收件用户标识中查找所述目标用户标识,若查找到所述目标用户标识,则将所述用户端确定为所述目标用户端。
在一个实施例中,上述推送模块13之后,如图12所示,图10所述装置还包括:
更新单元134,用于更新所述收件记录中与所述目标用户标识关联的消息状态。
在一个实施例中,如图13所示,图10所述装置还包括:
确定模板单元135,用于根据预设的配置信息确定推送消息的消息模板;
对应的,上述推送单元133具体用于将所述目标消息内容添加到所述消息模板中生成预设版本的目标消息;将所述预设版本的目标消息推送至所述目标用户端。
关于消息推送装置的具体限定可以参见上文中对于消息推送方法的限定,在此不再赘述。上述消息推送装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图14所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储消息的消息内容。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种消息推送方法。
本领域技术人员可以理解,图14中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:
获取已创建的消息;
将所述消息存储在预设数据库中;所述预设数据库中包括发件箱、消息箱和收件箱;所述发件箱中包括所述消息的发件记录,所述消息箱中包括所述消息的消息内容,所述收件箱中包括所述消息的收件记录;
通过访问所述预设数据库向至少一个用户端推送所述消息。
上述实施例提供的一种计算机设备,其实现原理和技术效果与上述方法实施例类似,在此不再赘述。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
获取已创建的消息;
将所述消息存储在预设数据库中;所述预设数据库中包括发件箱、消息箱和收件箱;所述发件箱中包括所述消息的发件记录,所述消息箱中包括所述消息的消息内容,所述收件箱中包括所述消息的收件记录;
通过访问所述预设数据库向至少一个用户端推送所述消息。
上述实施例提供的一种计算机可读存储介质,其实现原理和技术效果与上述方法实施例类似,在此不再赘述。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-Only Memory,ROM)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic Random Access Memory,DRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种消息推送方法,其特征在于,所述方法包括:
获取已创建的消息;
将所述消息存储在预设数据库中;所述预设数据库中包括发件箱、消息箱和收件箱;所述发件箱中包括所述消息的发件记录,所述消息箱中包括所述消息的消息内容,所述收件箱中包括所述消息的收件记录;
通过访问所述预设数据库向至少一个用户端推送所述消息。
2.根据权利要求1所述的方法,其特征在于,所述通过访问所述预设数据库向至少一个用户端推送所述消息,包括:
通过读取所述收件箱中的收件记录的方式向至少一个用户端推送所述消息。
3.根据权利要求2所述的方法,其特征在于,所述通过读取所述收件箱中的收件记录的方式向至少一个用户端推送所述消息,包括:
根据所述收件记录中记录的收件用户标识确定目标用户端;
根据所述收件记录中记录的与所述目标用户端的目标用户标识对应的消息标识,从所述消息箱中读取目标消息内容;
将所述目标消息内容推送至所述目标用户端。
4.根据权利要求3所述的方法,其特征在于,所述根据所述收件记录中记录的收件用户标识确定目标用户端,包括:
将所述收件记录中记录的所有收件用户标识对应的用户端确定为目标用户端。
5.根据权利要求3所述的方法,其特征在于,所述根据所述收件记录中记录的收件用户标识确定目标用户端,包括:
接收用户端发送的读取请求;所述读取请求包括目标用户标识;
从所述收件记录中记录的所有收件用户标识中查找所述目标用户标识,若查找到所述目标用户标识,则将所述用户端确定为所述目标用户端。
6.根据权利要求3所述的方法,其特征在于,所述将所述目标消息内容推送至所述目标用户端之后,所述方法还包括:
更新所述收件记录中与所述目标用户标识关联的消息状态。
7.根据权利要求3所述的方法,其特征在于,所述方法还包括:
根据预设的配置信息确定推送消息的消息模板;
所述将所述目标消息内容推送至所述目标用户端,包括:
将所述目标消息内容添加到所述消息模板中生成预设版本的目标消息;
将所述预设版本的目标消息推送至所述目标用户端。
8.一种消息推送装置,其特征在于,所述装置包括:
获取模块,用于获取已创建的消息;
存储模块,用于将所述消息存储在预设数据库中;所述预设数据库中包括发件箱、消息箱和收件箱;所述发件箱中包括所述消息的发件记录,所述消息箱中包括所述消息的消息内容,所述收件箱中包括所述消息的收件记录;
推送模块,用于通过访问所述预设数据库向至少一个用户端推送所述消息。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110913757.XA CN113824763B (zh) | 2021-08-10 | 2021-08-10 | 消息推送方法、装置、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110913757.XA CN113824763B (zh) | 2021-08-10 | 2021-08-10 | 消息推送方法、装置、计算机设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113824763A true CN113824763A (zh) | 2021-12-21 |
CN113824763B CN113824763B (zh) | 2024-03-01 |
Family
ID=78913061
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110913757.XA Active CN113824763B (zh) | 2021-08-10 | 2021-08-10 | 消息推送方法、装置、计算机设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113824763B (zh) |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102065383A (zh) * | 2010-12-16 | 2011-05-18 | 中兴通讯股份有限公司 | 消息的发送方法及移动终端 |
CN103188297A (zh) * | 2011-12-29 | 2013-07-03 | 北大方正集团有限公司 | 一种消息存储和获取方法及系统 |
US20130339477A1 (en) * | 2012-06-19 | 2013-12-19 | Loment, Inc. | Delivery control for http communications among multiple end user communication devices |
US20130340094A1 (en) * | 2011-03-31 | 2013-12-19 | Loment, Inc. | Delivery control for http communications among multiple end user communication devices |
CN103944799A (zh) * | 2013-01-18 | 2014-07-23 | 阿里巴巴集团控股有限公司 | 消息处理方法及系统 |
CN105100062A (zh) * | 2015-06-25 | 2015-11-25 | 走遍世界(北京)信息技术有限公司 | 信息推送方法、装置及系统 |
US20160191437A1 (en) * | 2014-12-31 | 2016-06-30 | C. Douglass Thomas | Data Transmission Management for Computer Based Inter-User Communication |
CN105827706A (zh) * | 2016-03-24 | 2016-08-03 | 努比亚技术有限公司 | 消息推送装置及方法 |
US20170214647A1 (en) * | 2016-01-27 | 2017-07-27 | Yahoo! Inc. | Computerized system and method for determining and displaying message content in a user's inbox |
CN110034998A (zh) * | 2017-11-07 | 2019-07-19 | 奥誓公司 | 控制电子消息及其在传递之后的响应的计算机系统和方法 |
CN110636106A (zh) * | 2019-08-15 | 2019-12-31 | 平安普惠企业管理有限公司 | 信息推送方法、装置、计算机设备和存储介质 |
US20200112606A1 (en) * | 2018-10-03 | 2020-04-09 | International Business Machines Corporation | Synchronizing a device using push notifications |
-
2021
- 2021-08-10 CN CN202110913757.XA patent/CN113824763B/zh active Active
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102065383A (zh) * | 2010-12-16 | 2011-05-18 | 中兴通讯股份有限公司 | 消息的发送方法及移动终端 |
US20130340094A1 (en) * | 2011-03-31 | 2013-12-19 | Loment, Inc. | Delivery control for http communications among multiple end user communication devices |
CN103188297A (zh) * | 2011-12-29 | 2013-07-03 | 北大方正集团有限公司 | 一种消息存储和获取方法及系统 |
US20130339477A1 (en) * | 2012-06-19 | 2013-12-19 | Loment, Inc. | Delivery control for http communications among multiple end user communication devices |
CN103944799A (zh) * | 2013-01-18 | 2014-07-23 | 阿里巴巴集团控股有限公司 | 消息处理方法及系统 |
US20160191437A1 (en) * | 2014-12-31 | 2016-06-30 | C. Douglass Thomas | Data Transmission Management for Computer Based Inter-User Communication |
CN105100062A (zh) * | 2015-06-25 | 2015-11-25 | 走遍世界(北京)信息技术有限公司 | 信息推送方法、装置及系统 |
US20170214647A1 (en) * | 2016-01-27 | 2017-07-27 | Yahoo! Inc. | Computerized system and method for determining and displaying message content in a user's inbox |
CN105827706A (zh) * | 2016-03-24 | 2016-08-03 | 努比亚技术有限公司 | 消息推送装置及方法 |
CN110034998A (zh) * | 2017-11-07 | 2019-07-19 | 奥誓公司 | 控制电子消息及其在传递之后的响应的计算机系统和方法 |
US20200112606A1 (en) * | 2018-10-03 | 2020-04-09 | International Business Machines Corporation | Synchronizing a device using push notifications |
CN110636106A (zh) * | 2019-08-15 | 2019-12-31 | 平安普惠企业管理有限公司 | 信息推送方法、装置、计算机设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN113824763B (zh) | 2024-03-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107885804A (zh) | 数据库同步方法、应用服务器及计算机可读存储介质 | |
CN108572970B (zh) | 一种结构化数据的处理方法和分布式处理系统 | |
CN106095789B (zh) | 一种消息订阅管理装置及方法 | |
CN110209348B (zh) | 数据存储方法、装置、电子设备及存储介质 | |
CN109842621B (zh) | 一种减少token存储数量的方法及终端 | |
CN113014623B (zh) | 埋点实时流数据处理方法、装置、计算机设备和存储介质 | |
CN110457305B (zh) | 数据去重方法、装置、设备及介质 | |
CN104657435A (zh) | 一种应用数据的存储管理方法和网络管理系统 | |
CN108536544B (zh) | 基于数据库消息队列的消费方法、装置、服务器和介质 | |
CN113342746A (zh) | 文件管理系统、文件管理方法、电子设备和存储介质 | |
CN112800134A (zh) | 一种数据同步方法及系统 | |
CN113014510A (zh) | 惯导系统分布式测试中数据缓存方法及装置 | |
CN113342863A (zh) | 业务单据处理方法、装置、计算机设备和存储介质 | |
CN113824763B (zh) | 消息推送方法、装置、计算机设备和存储介质 | |
CN114402313A (zh) | 标签更新方法、装置、电子设备及存储介质 | |
CN116028696A (zh) | 资源信息获取方法、装置、电子设备及存储介质 | |
CN115794876A (zh) | 针对业务数据包的分片处理方法、装置、设备及存储介质 | |
CN114238264A (zh) | 数据处理方法、装置、计算机设备和存储介质 | |
CN110716885B (zh) | 数据管理方法、装置、电子设备和存储介质 | |
CN103856359A (zh) | 获取信息的方法和系统 | |
CN117406936B (zh) | Io请求调度方法、装置、电子设备和存储介质 | |
CN117478535B (zh) | 一种日志存储的方法和装置 | |
CN116662016B (zh) | 端口切换方法、装置、计算机设备、存储介质和程序产品 | |
CN112578996B (zh) | 一种存储系统的元数据的发送方法及存储系统 | |
CN115809153A (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 |