推送消息的方法、装置和存储介质与流程

文档序号:16314066发布日期:2018-12-19 05:24阅读:152来源:国知局
推送消息的方法、装置和存储介质与流程

本公开涉及互联网技术领域,具体地,涉及一种推送消息的方法、装置和存储介质。

背景技术

在申请号为201611184661.x的中国专利申请文件中,公开了一种消息推送方法,所述方法包括:在缓存队列满足预设条件时,从缓存服务器中获取推送消息;所述缓存服务器中存储有业务服务器生成并发送的推送消息;缓存获取到的所述推送消息至所述缓存队列;推送所述缓存队列中的推送消息至客户端。

然而,上述专利公开的技术方案可适用的场景受限,对于数据量已过百万的消息数据库,当存在有按特定企业或特定用户推送消息等个性化需求时,需要使用比较复杂的数据库sql语句,很容易引发数据库慢查询;对于需要满足按特定企业发布的个性化需求,缓存无法根据地区创建,只能根据用户创建,而同一用户短时间内重复登录的可能性极小,导致缓存利用率低。



技术实现要素:

本公开提供一种推送消息的方法、装置和存储介质,以解决相关技术中因个性化需求的消息推送难以充分使用现有的缓存资源而导致缓存利用率低的技术问题。

为实现上述目的,本公开实施例的第一方面,提供一种推送消息的方法,应用于平台服务器,所述方法包括:

获取登录所述平台服务器的账户的属性信息;

根据缓存的属性信息与标识信息的对应关系表,查询所述属性信息对应的消息的标识信息;

根据查询到的所述标识信息,将数据库中所述标识信息对应的消息推送给由所述账户登录所述平台服务器的客户端。

可选地,所述方法还包括:

获取登录所述平台服务器的账户的属性信息之前,创建对应关系表并存入缓存中。

可选地,所述创建对应关系表并存入缓存中,包括:

查询缓存中是否存在对应关系表;

当所述缓存中不存在对应关系表时,将缓存操作上锁;上锁时,禁止其它账户进入所述平台服务器或查询所述对应关系表;

解析数据库中的消息数据以获取将属性信息与消息的标识信息的对应关系;

根据解析结果,创建对应关系表并存入缓存中;

解锁所述缓存操作。

可选地,所述方法还包括:

将缓存操作上锁后,确认所述缓存中不存在所述对应关系表。

可选地,创建对应关系表之前,所述方法还包括:

当所述数据库中的消息数据变更时,设置更新标记;

定期查询是否存在所述更新标记;当存在所述更新标记时,创建对应关系表。

可选地,所述属性信息包括账户对应的地区编号和企业税号,所述标识信息包括消息的编号。

本公开实施例的第二方面,提供一种推送消息的装置,所述装置包括:

获取模块,用于获取登录所述平台服务器的账户的属性信息;

查询模块,用于根据缓存的属性信息与标识信息的对应关系表,查询所述属性信息对应的消息的标识信息;

推送模块,用于根据查询到的所述标识信息,将数据库中所述标识信息对应的消息推送给所述账户。

可选地,还包括:

创建模块,用于获取登录所述平台服务器的账户的属性信息之前,创建对应关系表并存入缓存中。

可选地,所述创建模块包括:

查询子模块,用于查询缓存中是否存在对应关系表;

上锁子模块,用于当所述缓存中不存在对应关系表时,将缓存操作上锁;上锁时,禁止其它账户进入所述平台服务器或查询所述对应关系表;

解析子模块,用于解析数据库中的消息数据以获取将属性信息与消息的标识信息的对应关系;

创建子模块,用于根据解析结果,创建对应关系表并存入缓存中;

解锁子模块,用于解锁所述缓存操作。

可选地,所述创建模块还包括:

确认子模块,用于将缓存操作上锁后,确认所述缓存中不存在所述对应关系表。

可选地,还包括:

设置模块,用于当所述数据库中的消息数据变更时,设置更新标记;

定期查询模块,用于定期查询是否存在所述更新标记;当存在所述更新标记时,所述创建模块执行创建对应关系表的操作。

本公开实施例的第三方面,提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述第一方面中任一项所述方法的步骤。

本公开实施例的第四方面,提供一种推送消息的装置,包括:

存储器,其上存储有计算机程序;以及

处理器,用于执行所述存储器中的所述计算机程序,以实现上述第一方面中任一项所述方法的步骤。

采用上述技术方案,至少能够达到如下技术效果:

本公开通过在缓存中设置属性信息与标识信息的对应关系表,在用户登录平台服务器时,可以根据用户账户的属性信息查询到对应的消息的标识信息,进而可以根据标识信息,将数据库中对应于标识信息的消息推送给用户,不仅能够满足个性化需求,还由于缓存中存储的是对应关系表,实现了最低数据量的存储,降低了系统资源的占用,因此,解决了相关技术中因个性化需求的消息推送难以充分使用现有的缓存资源而导致缓存利用率低的技术问题。

本公开的其他特征和优点将在随后的具体实施方式部分予以详细说明。

附图说明

附图是用来提供对本公开的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本公开,但并不构成对本公开的限制。在附图中:

图1是本公开一示例性实施例示出的一种推送消息的方法流程图。

图2是本公开根据一示例性实施例示出的一种实施环境的示意图。

图3是本公开一示例性实施例示出的另一种推送消息的方法流程图。

图4是根据一示例性实施例示出的一种推送消息的方法包括的步骤中创建对应关系表的流程图。

图5是本公开一示例性实施例示出的一种推送消息的装置框图。

图6是本公开一示例性实施例示出的另一种推送消息的装置框图。

图7是本公开一示例性实施例示出的一种推送消息的装置的创建模块的框图。

图8是根据一示例性实施例示出的一种推送消息的装置框图。

具体实施方式

以下结合附图对本公开的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本公开,并不用于限制本公开。

图2是根据一示例性实施例示出的一种实施环境的示意图。如图2所示,该实施环境可以包括平台服务器10、运行在第一终端20和第二终端30上的客户端。平台服务器10可以是一台服务器,也可以为由多台服务器组成的服务器集群。在该实施例中,平台服务器10中设有数据库以存储消息数据,以及设置缓存空间缓存对应关系表。在其它实施例中,也可以是一台平台服务器中设置数据库,另一台平台服务器设置缓存空间缓存对应关系表。

终端可以是通过移动通信网络访问平台服务器10的用户设备,例如台式电脑、智能手机、平板电脑、笔记本电脑等用户设备。图2以终端是台式电脑来示意。具体地,终端上可以安装有多种客户端,客户端在访问网络服务时,发起网络连接请求,基于该网络连接请求,该终端可以连接移动通信网络,访问平台服务器10。

其中,通过客户端登录平台服务器的用户可以是企业用户,客户端是地区各企业的企业交流系统,企业用户通过自己的账户登录企业交流系统,平台服务器可以把不同的消息推送给对应的企业用户。在其它实施例中,通过客户端登录平台服务器的用户也可以是企业的员工,客户端是某企业的内部交流系统,员工通过自己的账户登录内部交流系统,平台服务器可以把不同的消息推送给对应的员工。

图1是根据一示例性实施例示出的一种推送消息的方法流程图,以解决相关技术中因个性化需求的消息推送难以充分使用现有的缓存资源而导致缓存利用率低的技术问题。本实施例示出的该推送消息的方法可以应用于如图2所示的平台服务器10,如图1所示,该方法包括:

s11,获取登录所述平台服务器的账户的属性信息。

s12,根据缓存的属性信息与标识信息的对应关系表,查询所述属性信息对应的消息的标识信息。

s13,根据查询到的所述标识信息,将数据库中所述标识信息对应的消息推送给由所述账户登录所述平台服务器的客户端。

在步骤s11中,用户在客户端输入账户的信息,比如输入账户名称和密码,客户端或者平台服务器对输入的账户名称和密码进行验证,验证成功后则允许客户端登录所述平台服务器。

其中,登录所述平台服务器的账户都有对应的属性信息。比如,当所述平台服务器的用户为企业用户,客户端是地区各企业的企业交流系统时,该账户的属性信息可以包括企业所处地区的地区编号和/或企业税号;当所述平台服务器的用户为企业的员工,客户端是该企业的内部交流系统,该账户的属性信息可以包括员工的工号和/或所属部门等信息。在其它的实施例中,账户的属性信息可以是预设的其它标识信息,对此,本公开不做具体限定。

需要说明的是,账户的属性信息与账户名称可以是关联预存于终端或者平台服务器中。

获取账户的属性信息后,执行步骤s12,根据缓存的属性信息与标识信息的对应关系表,查询所述属性信息对应的消息的标识信息。其中,所述消息的标识信息可以是消息数据库中消息的编号,消息数据库中每条消息都有一个唯一的消息编号。需要说明的是,属性信息与标识信息的对应关系表存储于平台服务器的缓存中。

在缓存中的对应关系表中查询到所述属性信息对应的消息的标识信息时,执行步骤s13,将数据库中所述标识信息对应的消息推送给由所述账户登录所述平台服务器的客户端。

举例来讲,如图2所示,平台服务器10可以是一款支持全国各地区个性化配置的统一平台,平台服务器10中的消息支持按目标地区发布以及目标企业发布。其中,第一终端20为位于北京地区的第一企业所使用的终端,第二终端30为位于上海地区的第二企业所使用的终端,第一终端20和第二终端30均安装有可登录平台服务器10的客户端。第一企业用户将自己的账户名称和密码输入第一终端20中客户端的登录界面,第二企业用户将自己的账户名称和密码输入第二终端30中客户端的登录界面,平台服务器10对第一企业用户和第二企业用户的账户信息进行验证,验证成功后允许第一终端20和第二终端30中的客户端登录所述平台服务器10。

接着,平台服务器10可以根据账户名称在预存空间中查询对应的账户的属性信息,比如,预存空间中存储着第一企业用户的账户名称以及对应的属性信息,属性信息中包括:企业税号为110101000000000,北京地区编号为110100;所述预存空间中还存储着第二企业用户的账户名称以及对应的属性信息,属性信息中包括:上海地区编号为310000。

然后,平台服务器10在缓存中查询对应关系表,假设北京地区包含消息1、消息2,第一企业包含消息3,上海地区包含消息4,则对应关系表中包含三条数据,分别为:{“110100”,“1、2”}、{“110101000000000”,“3”}、{“310000”,“4”}。根据查询结果可知,第一企业用户的账户的属性信息对应的消息标识为“1、2、3”,第二企业用户的账户的属性信息对应的消息标识为“4”。

接着,将数据库中消息标识为“1、2、3”的消息推送给第一终端20的客户端,即将消息1、消息2、消息3推送给第一企业用户;将数据库中消息标识为“4”的消息推送给第二终端30的客户端,即将消息4推送给第二企业用户。

当然,在其它的实施例中,通过客户端登录平台服务器10的用户也可以是企业的员工,客户端是该企业的内部交流系统,员工通过自己的账户登录内部交流系统,平台服务器10可以把不同的消息推送给对应的员工,第一终端20和第二终端30为该企业内两个不同部门的员工所使用的终端,员工账户的属性信息可以包括员工工号和部门编号等信息。平台服务器10可以根据缓存的对应关系表把消息推送给某一员工,也可以推送给某个部门的所有员工。

本公开通过在缓存中设置属性信息与标识信息的对应关系表,在用户登录平台服务器时,可以根据用户账户的属性信息查询到对应的消息的标识信息,进而可以根据标识信息,将数据库中对应于标识信息的消息推送给用户,不仅能够满足个性化需求,还由于缓存中存储的是对应关系表,实现了最低数据量的存储,降低了系统资源的占用,因此,解决了相关技术中因个性化需求的消息推送难以充分使用现有的缓存资源而导致缓存利用率低的技术问题。

值得说明的是,对于图1所示的方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本公开并不受所描述的动作顺序的限制。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本公开所必须的。

图3是本公开一示例性实施例示出的另一种推送消息的方法流程图,以解决相关技术中因个性化需求的消息推送难以充分使用现有的缓存资源而导致缓存利用率低的技术问题。本实施例示出的该推送消息的方法可以应用于如图2所示的平台服务器10,如图3所示,该方法包括:。

s21,创建对应关系表并存入缓存中。

s22,获取登录所述平台服务器的账户的属性信息。

s23,根据缓存的属性信息与标识信息的对应关系表,查询所述属性信息对应的消息的标识信息。

s24,根据查询到的所述标识信息,将数据库中所述标识信息对应的消息推送给由所述账户登录所述平台服务器的客户端。

当所述平台服务器的缓存中没有对应关系表时,需要创建对应关系表并存入缓存中。图4是根据一示例性实施例示出的一种推送消息的方法包括的步骤中创建对应关系表的流程图,如图4所示,所述创建对应关系表并存入缓存中,可以包括以下步骤:

s211,查询缓存中是否存在对应关系表。

s212,当所述缓存中不存在对应关系表时,将缓存操作上锁;上锁时,禁止其它账户进入所述平台服务器或查询所述对应关系表。

s213,解析数据库中的消息数据以获取将属性信息与消息的标识信息的对应关系。

s214,根据解析结果,创建对应关系表并存入缓存中。

s215,解锁所述缓存操作。

其中,创建对应关系表的操作需要上锁完成,原因是当多个用户同时登录且判定对应关系表不存在,那么就会有可能导致相同的创建对应关系表的操作被重复执行了多次,从而导致性能的浪费,严重时甚至可能使系统瘫痪。为解决此问题,可以对创建对应关系表的操作上锁,上锁后,只有最先登录或查询到对应关系表不存在的用户可以通过客户端登录平台服务器,其它用户则处于挂起的状态,在解锁后其它用户才可以通过客户端登录平台服务器进行查询操作。

其中,上锁前查询缓存中是否存在对应关系表,可以使多个线程同时查询到可能存在的缓存数据,提高并发处理能力。可选地,将缓存操作上锁后,确认所述缓存中不存在所述对应关系表。即,上锁后也执行查询操作,上锁后的查询操作则是为了解决重复创建对应关系表而做的必要判断。

其中,在步骤s213中,解析数据库中的消息数据可以包括:查询消息中是否存在预设关键词;当所述消息中存在预设关键词时,将该消息的标识信息与预设关键词对应的属性信息相关联。比如,预设关键词可以是企业名字,地区名称,员工名字等,假设查询到编号为1的消息中存在北京两个字,则在对应关系表中将北京地区编号关联于消息1,表现形式可以为:{“110100”,“1”}。

可选地,创建对应关系表之前,设置一个查询周期,查询周期时长可以是一周,也可以是五天或者三天等时长。在查询周期内,每当所述数据库中的消息数据变更时,设置更新标记。其中,消息数据变更可以是消息发布、消息删除或者消息内容变更,更新标记可以存在缓存中,也可以存在平台服务器的其它存储空间。比如,每隔一周,查询缓存中是否存在更新标记,如果存在,则执行步骤s21,创建对应关系表并存入缓存中。在该实施例中,执行步骤s21,可以省去查询缓存中是否存在对应关系表的步骤。

由于每当消息发布、消息删除、消息变更时,数据库中的消息数据就会发生改变,如果同步更新缓存数据,会大幅降低缓存系统的性能,但如果不同步更新缓存数据,那么用户登录获取的消息,就仍然是之前创建缓存时的消息,产生消息数据不同步的现象。为充分利用缓存资源,提高缓存利用率,缓存时间不能过短,而为保证数据同步,缓存时间又不能过长。为解决这一矛盾,本公开按需更新缓存,即在消息数据发生改变时设置标记,然后定时判断是否存在更新标记,只有存在更新标记,才会更新对应关系表。由于更新缓存定时触发,不会出现并发的情况,因此不需要上锁。

由于是通过按需更新对应关系表,解决了缓存利用率与数据不同步的矛盾,根据实际情况最优化地使用缓存资源。

图5是本公开一示例性实施例示出的一种推送消息的装置框图,如图5所示,所述推送消息的装置300包括:

获取模块310,用于获取登录所述平台服务器的账户的属性信息;

查询模块320,用于根据缓存的属性信息与标识信息的对应关系表,查询所述属性信息对应的消息的标识信息;

推送模块330,用于根据查询到的所述标识信息,将数据库中所述标识信息对应的消息推送给所述账户。

可选地,如图6所示,所述推送消息的装置300还包括:

创建模块340,用于获取登录所述平台服务器的账户的属性信息之前,创建对应关系表并存入缓存中。

可选地,如图7所示,所述创建模块340包括:

查询子模块341,用于查询缓存中是否存在对应关系表;

上锁子模块342,用于当所述缓存中不存在对应关系表时,将缓存操作上锁;上锁时,禁止其它账户进入所述平台服务器或查询所述对应关系表;

解析子模块344,用于解析数据库中的消息数据以获取将属性信息与消息的标识信息的对应关系;

创建子模块345,用于根据解析结果,创建对应关系表并存入缓存中;

解锁子模块346,用于解锁所述缓存操作。

可选地,所述创建模块还包括:

确认子模块343,用于将缓存操作上锁后,确认所述缓存中不存在所述对应关系表。

可选地,如图6所示,所述推送消息的装置300还包括:

设置模块350,用于当所述数据库中的消息数据变更时,设置更新标记。

定期查询模块360,用于定期查询是否存在所述更新标记;当存在所述更新标记时,所述创建模块340执行创建对应关系表的操作。

关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。

本公开还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述任一项可选实施例所述推送消息的方法步骤。

本公开还提供一种推送消息的装置,包括:

存储器,其上存储有计算机程序;以及

处理器,用于执行所述存储器中的所述计算机程序,以实现所述推送消息的方法步骤。

图8是根据一示例性实施例示出的一种推送消息的装置400框图。如图8所示,该装置400可以包括:处理器401,存储器402,多媒体组件403,输入/输出(i/o)接口404,以及通信组件405。

其中,处理器401用于控制该装置400的整体操作,以完成上述的推送消息的方法中的全部或部分步骤。存储器402用于存储各种类型的数据以支持在该装置400的操作,这些数据例如可以包括用于在该装置400上操作的任何应用程序或方法的指令,以及应用程序相关的数据。该存储器402可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,例如静态随机存取存储器(staticrandomaccessmemory,简称sram),电可擦除可编程只读存储器(electricallyerasableprogrammableread-onlymemory,简称eeprom),可擦除可编程只读存储器(erasableprogrammableread-onlymemory,简称eprom),可编程只读存储器(programmableread-onlymemory,简称prom),只读存储器(read-onlymemory,简称rom),磁存储器,快闪存储器,磁盘或光盘。多媒体组件403可以包括屏幕和音频组件。其中屏幕例如可以是触摸屏,音频组件用于输出和/或输入音频信号。例如,音频组件可以包括一个麦克风,麦克风用于接收外部音频信号。所接收的音频信号可以被进一步存储在存储器402或通过通信组件405发送。音频组件还包括至少一个扬声器,用于输出音频信号。i/o接口404为处理器401和其他接口模块之间提供接口,上述其他接口模块可以是键盘,鼠标,按钮等。这些按钮可以是虚拟按钮或者实体按钮。通信组件405用于该装置400与其他设备之间进行有线或无线通信。无线通信,例如wi-fi,蓝牙,近场通信(nearfieldcommunication,简称nfc),2g、3g或4g,或它们中的一种或几种的组合,因此相应的该通信组件405可以包括:wi-fi模块,蓝牙模块,nfc模块。

在一示例性实施例中,装置400可以被一个或多个应用专用集成电路(applicationspecificintegratedcircuit,简称asic)、数字信号处理器(digitalsignalprocessor,简称dsp)、数字信号处理设备(digitalsignalprocessingdevice,简称dspd)、可编程逻辑器件(programmablelogicdevice,简称pld)、现场可编程门阵列(fieldprogrammablegatearray,简称fpga)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述的推送消息的方法。

在另一示例性实施例中,还提供了一种包括程序指令的计算机可读存储介质,例如包括程序指令的存储器402,上述程序指令可由装置400的处理器401执行以完成上述的推送消息的方法。

以上结合附图详细描述了本公开的优选实施方式,但是,本公开并不限于上述实施方式中的具体细节,在本公开的技术构思范围内,可以对本公开的技术方案进行多种简单变型,这些简单变型均属于本公开的保护范围。

另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合。为了避免不必要的重复,本公开对各种可能的组合方式不再另行说明。

此外,本公开的各种不同的实施方式之间也可以进行任意组合,只要其不违背本公开的思想,其同样应当视为本公开所公开的内容。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1