CN112311597B - 消息推送方法和装置 - Google Patents

消息推送方法和装置 Download PDF

Info

Publication number
CN112311597B
CN112311597B CN202011169087.7A CN202011169087A CN112311597B CN 112311597 B CN112311597 B CN 112311597B CN 202011169087 A CN202011169087 A CN 202011169087A CN 112311597 B CN112311597 B CN 112311597B
Authority
CN
China
Prior art keywords
push
task
pushing
preset
tasks
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.)
Active
Application number
CN202011169087.7A
Other languages
English (en)
Other versions
CN112311597A (zh
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.)
Nanjing Shangwang Network Technology Co ltd
Original Assignee
Nanjing Shangwang Network Technology 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 Nanjing Shangwang Network Technology Co ltd filed Critical Nanjing Shangwang Network Technology Co ltd
Priority to CN202011169087.7A priority Critical patent/CN112311597B/zh
Publication of CN112311597A publication Critical patent/CN112311597A/zh
Application granted granted Critical
Publication of CN112311597B publication Critical patent/CN112311597B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/02Standardisation; Integration
    • H04L41/0246Exchanging or transporting network management information using the Internet; Embedding network management web servers in network elements; Web-services-based protocols
    • H04L41/026Exchanging or transporting network management information using the Internet; Embedding network management web servers in network elements; Web-services-based protocols using e-messaging for transporting management information, e.g. email, instant messaging or chat
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/50Network service management, e.g. ensuring proper service fulfilment according to agreements
    • H04L41/508Network service management, e.g. ensuring proper service fulfilment according to agreements based on type of value added network service under agreement
    • H04L41/5093Network service management, e.g. ensuring proper service fulfilment according to agreements based on type of value added network service under agreement wherein the managed service relates to messaging or chat services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/215Flow control; Congestion control using token-bucket
    • 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/04Real-time or near real-time messaging, e.g. instant messaging [IM]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本申请公开了消息推送方法和装置,涉及互联网和信息推送技术领域。具体实施方式包括:获取用于指示向客户端推送消息的多个推送任务,将令牌桶中的令牌分别颁发给该多个推送任务,其中,该令牌指示推送任务将被执行;执行匹配步骤:对于该多个推送任务中的推送任务,将该推送任务的相关信息与该推送任务的预设推送条件进行匹配,并将相关信息与该预设推送条件不相匹配的推送任务对应的令牌归还给该令牌桶;执行该多个推送任务中,仍然保留有对应的令牌的推送任务。本申请可以在颁发令牌之后,通过令牌的归还进行推送消息的限流,在一定程度上避免了推送高峰的出现,减少了服务端的开销,提高了服务端的有效利用率。

Description

消息推送方法和装置
技术领域
本申请涉及计算机技术领域,具体涉及互联网和信息推送技术领域,尤其涉及消息推送方法和装置。
背景技术
随着互联网技术的发展,越来越多的用户开始利用各种终端设备使用应用。
在现有技术中,一旦客户端上线,服务器就会向终端推送消息。在客户端上线的高峰期,则可能造成服务器同时向多个终端推送的情形。而此时则可能产生很高的推送高峰。而网络供应商往往根据推送的最高峰进行计费,因此,该推送方式很可能消耗较大的推送成本。
发明内容
提供了一种消息推送方法、装置、电子设备以及存储介质。
根据第一方面,提供了一种消息推送方法,包括:获取用于指示向客户端推送消息的多个推送任务,将令牌桶中的令牌分别颁发给多个推送任务,其中,令牌指示推送任务将被执行;执行匹配步骤:对于多个推送任务中的推送任务,将该推送任务的相关信息与该推送任务的预设推送条件进行匹配,并将相关信息与预设推送条件不相匹配的推送任务对应的令牌归还给令牌桶;执行多个推送任务中,仍然保留有对应的令牌的推送任务。
根据第二方面,提供了一种消息推送装置,包括:获取单元,被配置成获取用于指示向客户端推送消息的多个推送任务,将令牌桶中的令牌分别颁发给多个推送任务,其中,令牌指示推送任务将被执行;匹配单元,被配置成执行匹配步骤:对于多个推送任务中的推送任务,将该推送任务的相关信息与该推送任务的预设推送条件进行匹配,并将相关信息与预设推送条件不相匹配的推送任务对应的令牌归还给令牌桶;推送单元,被配置成执行多个推送任务中,仍然保留有对应的令牌的推送任务。
根据第三方面,提供了一种电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当一个或多个程序被一个或多个处理器执行,使得一个或多个处理器实现如消息推送方法中任一实施例的方法。
根据第四方面,提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如消息推送方法中任一实施例的方法。
根据本申请的方案,可以在颁发令牌之后,通过令牌的归还进行推送消息的限流,在一定程度上避免了推送高峰的出现,减少了服务端的开销,提高了服务端的有效利用率。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:
图1是本申请一些实施例可以应用于其中的示例性***架构图;
图2a是根据本申请的消息推送方法的一个实施例的流程图;
图2b是根据本申请的消息推送方法的又一个实施例的流程图;
图3是根据本申请的消息推送方法的一个应用场景的示意图;
图4a是根据本申请的消息推送方法的又一个实施例的流程图;
图4b是根据本申请的消息推送装置的一个实施例的一个结构示意图;
图5是根据本申请的消息推送装置的一个实施例的又一个结构示意图;
图6是用来实现本申请实施例的消息推送方法的电子设备的框图。
具体实施方式
以下结合附图对本申请的示范性实施例做出说明,其中包括本申请实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本申请的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
图1示出了可以应用本申请的消息推送方法或消息推送装置的实施例的示例性***架构100。
如图1所示,***架构100可以包括终端设备101、102、103,网络104和服务器105。网络104用以在终端设备101、102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备101、102、103通过网络104与服务器105交互,以接收或发送消息等。终端设备101、102、103上可以安装有各种通讯客户端应用,例如网络(比如WIFI)连接应用、视频类应用、直播应用、即时通信工具、邮箱客户端、社交平台软件等。
这里的终端设备101、102、103可以是硬件,也可以是软件。当终端设备101、102、103为硬件时,可以是具有显示屏的各种电子设备,包括但不限于智能手机、平板电脑、电子书阅读器、膝上型便携计算机和台式计算机等等。当终端设备101、102、103为软件时,可以安装在上述所列举的电子设备中。其可以实现成多个软件或软件模块(例如用来提供分布式服务的多个软件或软件模块),也可以实现成单个软件或软件模块。在此不做具体限定。
服务器105可以是提供各种服务的服务器,例如对终端设备101、102、103提供支持的后台服务器。后台服务器可以对接收到的客户端上线消息等数据进行分析等处理,并将处理结果(例如推送任务)反馈给终端设备。
需要说明的是,本申请实施例所提供的消息推送方法可以由服务器105执行,相应地,消息推送装置可以设置于服务器105中。在实践中,本申请中的方案可以在同一个服务器上完成,也可以由多台服务器共同完成。
应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
继续参考图2a,示出了根据本申请的消息推送方法的一个实施例的流程200。该消息推送方法,包括以下步骤:
步骤201,获取用于指示向客户端推送消息的多个推送任务,将令牌桶中的令牌分别颁发给多个推送任务,其中,令牌指示推送任务将被执行。
在本实施例中,消息推送方法运行于其上的执行主体(例如图1所示的服务器)可以获取指示向客户端推送消息的多个推送任务,并从令牌桶中,确定出分别对应上述多个推送任务的令牌。也即,上述执行主体可以将令牌桶中的令牌,颁发给上述多个推送任务。这里的推送任务是向客户端推送消息。具有令牌的推送任务才会被执行,不具有令牌的推送任务则不会被执行。
步骤202,执行匹配步骤:对于多个推送任务中的推送任务,将该推送任务的相关信息与该推送任务的预设推送条件进行匹配,并将相关信息与预设推送条件不相匹配的推送任务对应的令牌归还给令牌桶。
在本实施例中,上述执行主体可以执行匹配步骤。具体地,匹配步骤可以包括上述执行主体对于上述的多个推送任务中的推送任务比如每个推送任务,将该推送任务的任务信息与该推送任务的预设推送条件进行匹配,并确定出哪一个推送任务的相关信息与其(这一个推送任务的)预设推送条件不相匹配,则将这一个推送任务对应的令牌归还给令牌桶,这样,被归还了令牌的推送任务当前就不具有被执行的权限。推送任务对应的令牌指对该推送任务所对应的客户端颁发的令牌。每个推送任务可以存在相对应的预设推送条件。
在实践中,相关信息可以是与推送任务相关的各种信息,比如可以是推送任务对应的客户端下载渠道,也即推送任务对应的客户端的下载渠道。每个客户端可以存在相对应的上述相关信息,也即,对不同客户端的推送任务的相关信息可以是不尽相同的。预设推送条件则是针对相关信息设置的限定条件。比如必须是某个特定客户端下载渠道(比如预设的客户端下载渠道条件),上述进行匹配的结果才是相匹配。
举例来说,下载渠道可以是A品牌下载商店、B品牌下载商店等等。一个推送任务是推送在A品牌手机运行的应用的推广信息。该推送任务的预设推送条件(客户端下载渠道条件)可以是仅限于A品牌下载商店下载的客户端。如果该推送任务的下载渠道为A品牌下载商店,则进行匹配的结果为相匹配,如果该推送任务的下载渠道为B品牌下载商店,则进行匹配的结果为不相匹配。
步骤203,执行多个推送任务中,仍然保留有对应的令牌的推送任务。
在本实施例中,上述执行主体可以将上述多个推送任务中,仍然存在对应的令牌的推送任务,进行执行,这样,上述执行主体可以进行这些存在令牌的推送任务指示的推送。也即,上述执行主体可以向归还了令牌的终端以外的客户端进行消息推送。
本申请的上述实施例提供的方法可以在颁发令牌之后,通过令牌的归还进行推送消息的限流,在一定程度上避免了推送高峰的出现,减少了服务端的开销,提高了服务端的有效利用率。
在本实施例的一些可选的实现方式中,上述步骤201中的将令牌桶中的令牌分别颁发给多个推送任务分别对应的客户端,以及步骤202中的执行匹配步骤可以是在一个令牌颁发周期内完成的。
在这些可选的实现方式中,上述执行主体可以在一个令牌颁发周期内也即在预设时长的一段时间内完成令牌的颁发以及归还过程。上述执行主体设置该令牌颁发的时间窗口,可以实现周期性的令牌颁发和推送过程,避免过短的时间来不及实现令牌颁发和归还时间,也可以避免过长时间推送导致积压的消息过多可能在瞬时导致流量高峰的问题。
在本实施例的一些可选的实现方式中,预设推送条件包括推送任务对应的以下的至少一项:流量域名条件、客户端下载渠道条件、客户端版本条件、设备标识分组条件、设备标识条件、推送时段范围条件、前缀兼设备标识条件、用户的时间间隔条件。
在这些可选的实现方式中,预设推送条件均与推送任务相对应。比如,可以包括客户端下载渠道条件。此外,预设推送条件还可以包括推送任务对应的客户端版本条件,在该情况下,推送任务可以设置有仅仅对预设客户端版本开放,也即,如果该推送任务对应的客户端的客户端版本是预设客户端版本,则该推送任务的相关信息与该推送任务的客户端版本条件相匹配。而如果推送任务对应的客户端的客户端版本不是预设客户端版本,则该推送任务的相关信息与该推送任务的客户端版本条件不相匹配。
流量域名条件指对流量域名(cdn)对应的流量域设定的条件。每个流量域均可以设定有对应的流量峰值阈值,也即(单位时段内,比如1天内)流量值的最高值,流量值即单位时间的流量也即速率,比如1秒钟的流量。
设备标识分组条件指对设备标识在求余(比如除以一个自然数得到的余数)后的分组情况设置的条件。设备标识(比如DHID)可以是号码,如果该号码的求余得到的余数存在于该推送任务的预设余数数值组,则该推送任务的两者之间也即相关信息与设备标识分组条件之间匹配,若不存在于该预设余数数值组,则上述两者不匹配。
设备标识条件指对客户端的设备标识的限定。比如,推送任务存在指定的设备标识名单,仅有名单上的设备标识对应的客户端才能够接收到针对该推送任务的推送。相应地,对该名单上的设备标识对应的推送任务进行匹配的匹配结果为相匹配。此外,也可以是推送任务存在设备标识黑名单,也即,在黑名单上的设备标识不会接收到针对该推送任务的推送。相应地,对黑名单上的设备标识对应的推送任务进行匹配的匹配结果为不相匹配。
推送时段范围条件指对推送任务限定的推送时段,比如当地早8点至晚8点。如果当前在这个推送时段内,则该推送任务的相关信息与该推送任务的推送时段范围条件匹配。如果当前不在这个推送时段内,则该推送任务的相关信息与该推送任务的推送时段范围条件不匹配。
前缀兼设备标识条件指推送任务的前缀(redis前缀)字段是否是该推送任务的预设前缀标识,如果是,则该推送任务的相关信息与该推送任务的前缀兼设备标识条件相匹配。
用户的时间间隔条件指相同推送任务给同一个客户端的推送频率设定。如果预设推送条件包括推送任务对应的用户的时间间隔条件,则该推送任务在一个预设时长(也即预设单位时段)内,仅能对同一个用户执行一次。比如,每天仅能给同一个用户推送一次。
这些实现方式可以通过各个预设推送条件对推送任务进行有效的过滤,让匹配出的推送任务符合用户需求、符合推送目的也能够避免流量峰值过高。
在本实施例的一些可选的实现方式中,预设推送条件包括推送任务对应的流量域名条件;将该推送任务的相关信息与该推送任务的预设推送条件进行匹配,包括:对于多个推送任务中的推送任务,确定该推送任务对应的流量域名,其中,每个流量域名存在对应的流量峰值阈值;对于将要利用该推送任务对应的流量域名指示的流量域进行推送的推送任务,预测流量峰值,其中,参与预测的推送任务存在对应的令牌;若所预测的流量峰值不超过流量峰值阈值,则确定该推送任务的相关信息与该推送任务所对应的流量域名条件相匹配。
在这些可选的实现方式中,上述执行主体可以对于多个推送任务中的推送任务比如每个推送任务,确定该推送任务对应的流量域名。利用该流量域名指示的流量域对应的流量峰值阈值,确定该推送任务与预设推送条件中包括的流量域名是否匹配。具体地,上述执行主体可以预测利用执行该推送任务采用的流量域进行推送的各个推送任务会产生的流量峰值。这里的流量峰值可以指单位时间内的流量峰值,比如1秒内的流量。参与预测的推送任务也即上述多个推送任务中的、对应的客户端具有颁发的令牌的推送任务。
在实践中,流量域名可以是推送任务字符串中的流量域名字段,也即cdn字段。每个流量域都可以单独设置有一个流量峰值阈值。
这些实现方式可以对每个流量域进行针对性的限流,从而实现在每个流量域都能够不超过限定的推送流量,从而可以有效确保总的推送流量的峰值较低。
在本实施例的一些可选的实现方式中,在预设推送条件包括推送任务对应的用户的时间间隔的情况下,响应于同一个客户端对应的相同推送任务为至少两个,相同推送任务中保留有令牌的个数为一个。
在这些可选的实现方式中,如果对应同一个客户端的、被颁发了令牌的相同推送任务有两个以上,那么在上述执行主体进行与这个预设推送条件进行匹配的时候,则对同一个客户端仅保留一个推送任务,也即,该客户端被颁发了令牌的推送任务中,仅有一个推送任务保留有令牌。
这些实现方式可以避免同一个用户频繁接收到相同的推送任务,以确保良好的用户体验。
在本实施例的一些可选的实现方式中,预设推送条件包括推送任务对应的设备标识分组条件;上述步骤202中的将该推送任务的相关信息与该推送任务的预设推送条件进行匹配,可以包括:确定该推送任务指示的客户端的设备标识,其中,设备标识为号码;对设备标识求余,得到该推送任务对应的余数,将余数划分到余数的数值对应的余数数值组,并将该余数数值组作为目标余数数值组;确定该推送任务的预设余数数值组中,是否包括目标余数数值组,其中,预设余数数值组的数量为至少一个;若确定包括目标余数数值组,则确定该推送任务的相关信息与该推送任务的设备标识分组条件相匹配。
在这些可选的实现方式中,上述执行主体可以按照预设求余方式进行求余。上述的号码为自然数,比如用号码除以10,得到的余数为1-9中的一个。这10个余数中的每个(或者至少两个)对应一个余数数值组。每个推送任务可以限定至少一个预设余数数值组,如果对当前的推送任务确定的余数数值组存在于上述预设余数数值组,则可以确定上述进行匹配的结果为相匹配。
这些实现方式可以通过限定设备标识的分组,来对推送任务进行较为准确的筛选。
在本实施例的一些可选的实现方式中,预设推送条件包括推送任务对应的前缀兼设备标识条件;上述步骤202中的将该推送任务的相关信息与该推送任务的预设推送条件进行匹配,可以包括:确定该推送任务的前缀字段,将前缀字段和该推送任务的设备标识进行组合,得到前缀标识组合,作为目标前缀标识组合;在该推送任务对应的预设前缀标识集合中,查找是否存在目标前缀标识组合;若查找到,则确定该推送任务的相关信息与该推送任务的任务前缀兼设备标识条件相匹配。
在这些可选的实现方式中,有一些推送任务需要对特定的客户端执行。上述执行主体可以将这些推送任务的前缀和特定的客户端的设备标识进行组合,比如组合得到的结构为{prefix}:{dhid}。并由各个组合的结果构成预设前缀标识集合。在对推送任务进行匹配时,上述执行主体可以将该推送任务的前缀字段和该推送任务的设备标识进行组合,得到该推送任务的前缀标识组合,并将该前缀标识组合与上述预设前缀标识集合中的各个前缀标识组合进行比对,如果比对到一致的,则可以确定相匹配。
这些实现方式可以通过前缀字段和设备标识,精准地对推送任务对应的客户端进行筛选,从而实现精确匹配。
在本实施例的一些可选的实现方式中,预设推送条件还包括预设推送数量;将该推送任务的相关信息与该推送任务的预设推送条件进行匹配,还包括:判断当前匹配出的推送任务的数量是否超过预设推送数量;若超过预设推送数量,则从当前匹配出的推送任务中,确定符合预设推送数量的目标推送任务,并确定目标推送任务的相关信息与目标推送任务所对应的预设推送数量相匹配;若未超过预设推送数量,则直接确定当前匹配出的推送任务的相关信息与该推送任务的预设推送数量相匹配。
在这些可选的实现方式中,上述执行主体可以在匹配出的推送任务的数量过多的情况下,减少推送任务的数量。当前匹配出的推送任务中,目标推送任务以外的推送任务则可以确定为任务信息与该推送任务的预设推送数量不相匹配的。
这些实现方式可以避免推送任务的数量过大,造成流量峰值过高的情况。
在本实施例的一些可选的实现方式中,预设推送条件还包括推送任务对应的任务限量数量,步骤202中的将该推送任务的相关信息与该推送任务的预设推送条件进行匹配,还可以包括:判断当前匹配出的推送任务中是否有存在且已达到任务限量数量的推送任务;若判断的结果为有,则确定判断出的推送任务的相关信息与该推送任务的任务限量数量不相匹配。
在这些可选的实现方式中,上述执行主体可以从当前匹配出的推送任务中,确定是否有这样的推送任务:该推送任务存在任务限量数量,且该推送任务的任务限量数量已经达到了。如果有,则可以确定该推送任务是不相匹配的。举例来说,某个推送任务是推送一个优惠券,任务限量数量为2千个。如果当前执行该推送任务的数量已经达到了2千个,则当前匹配出的推送任务中如果还有这个推送任务,则可以确定这个推送任务的相关信息与该推送任务的任务限量数量不相匹配。
在实践中,当前匹配出的推送任务指已经经过了之前(至少两个预设推送条件中排列在先的各个预设推送条件)的匹配,得到目前确定的相匹配的推送任务。
这些实现方式有效地遵从任务限量数量,避免限量任务的过量执行,同时也可以进一步确保推送时有较低的流量峰值。
在本实施例的一些可选的实现方式中,将该推送任务的相关信息与该推送任务的预设推送条件进行匹配,包括:在该推送任务的预设推送条件的数量为至少两个的情况下,响应于确定该推送任务的相关信息与当前的预设推送条件相匹配,则将匹配出的该推送任务的相关信息与下一个预设推送条件进行匹配;响应于确定该推送任务与当前的预设推送条件不相匹配,则停止匹配过程,确定该推送任务的相关信息与预设推送条件不相匹配。
在这些可选的实现方式中,该推送任务的预设推送条件可以包括至少两个。一旦与一个预设推送条件匹配成功,可以与下一个预设推送条件进行匹配,如果匹配失败,可以确定进行匹配的结果为不相匹配。这里的预设推送条件的排列顺序可以是预设的,也可以是随机的,还可以存在一部分预设推送条件的排列顺序固定,这一部分预设推送条件以外的预设推送条件随机的情况。比如排列顺序固定的预设推送条件可以包括预设推送数量和/或任务限量数量。
可选地,响应于该推送任务的预设推送条件包括存在匹配先后顺序的至少两个预设推送条件,对于多个推送任务中的推送任务,将该推送任务的相关信息与至少两个预设推送条件中的各个预设推送条件之间,按照匹配先后顺序进行匹配。
这些实现方式可以实现与每个预设推送条件的精准匹配。
如图2b所示,图中示出了根据本实施例的消息推送方法的又一个流程图。其中,上线事件消息是否超过三分钟指,终端上线的时间戳距离当前时间是否超过三分钟,也即筛选条件中的“上线事件消息对应的上线时间距当前的时长不超过预设时长”。全局开关是否打开,也即筛选条件中的“任务生成开关是否打开”。图中的全局用户频控也即筛选条件中的“上线事件消息对应的客户端在预设时长内未被推送过推送任务”。
继续参见图3,图3是根据本实施例的消息推送方法的应用场景的一个示意图。
进一步参考图4,其示出了消息推送方法的又一个实施例的流程400。该流程400,包括以下步骤:
步骤401,执行连接步骤:响应于接收到客户端发送的连接建立请求,与该客户端建立通信连接,获取上线事件消息。
在本实施例中,消息推送方法运行于其上的执行主体(例如图1所示的服务器)可以执行连接步骤。具体地,连接步骤可以指在接收到客户端发送的连接建立请求之后,与客户端建立通信连接,并获取上线事件消息:从客户端接收上线事件消息或生成该客户端的上线事件消息。这里的连接建立请求指客户端上线后,向服务端发送的用于建立通信连接的请求。
步骤402,执行加入步骤:将该客户端的上线事件消息加入消息集合。
在本实施例中,上述执行主体可以执行加入步骤。也即将客户端的上线事件消息加入消息集合中。该消息集合用于收集上线事件消息。
步骤403,执行拉取步骤:从消息集合中拉取上线事件消息,确定拉取的上线事件消息中的多个所对应的多个推送任务。
在本实施例中,上述执行主体可以执行拉取步骤。具体地,上述执行主体可以从消息集合中,拉取上线事件消息。比如拉取预设数量的上线事件消息。
可选地,上述从消息集合中拉取上线事件消息,可以包括:确定当前自身的处理能力,确定与处理能力匹配的、上线事件消息的待处理数量;从消息集合中,拉取符合待处理数量的上线事件消息。
上述执行主体可以根据当前自身的处理能力,确定与处理能力匹配的上线事件消息的数量,并按需拉取该数量的上线事件消息。这样,上述执行主体可以根据自身的处理能力,进行针对当前状态的准确拉取,避免拉取到超出处理能力的上线事件消息。在实践中,上述执行主体可以通过当前的运行信息和/或内存信息等各种体现自身处理能力的信息,来确定自身的处理能力。
本实施例可以利用消息集合,对上线事件消息进行限流,避免在接收到的上线事件消息过多的情况下无法及时处理各个上线事件消息,造成推送任务执行失败的问题。
在本实施例的一些可选的实现方式中,服务端包括第一服务器、第二服务器和第三服务器,消息集合为先进先出的消息队列,连接步骤为第一服务器执行的,加入步骤为第二服务器执行的,拉取步骤为第三服务器执行的。
在这些可选的实现方式中,上述服务端可以由三个或三个以上的服务器组成。第一服务器(push服务器)、第二服务器(kafka服务器)和第三服务器(consumer服务器)均可以包括一个以上的服务器实体设备。上述第一服务器可以对连接步骤中该客户端的上线事件消息,发送给第二服务器,有助于让第二服务器将上线事件消息加入消息队列中。
可选地,连接步骤,还可以包括:第一服务器,将该客户端的上线事件消息发送给第二服务器。
如图4b所示,图中示出了第一服务器、第二服务器和第三服务器组成的服务端的架构图。
这些实现方式可以通过三个服务器,实现各个设备之间的负载均衡,避免一个服务器的运行压力过大的问题。
在本实施例的一些可选的实现方式中,上述拉取步骤中的确定拉取的上线事件消息中的多个上线事件消息所对应的多个推送任务,可以包括:基于以下的至少一项筛选条件,确定拉取的上线事件消息中的多个上线事件消息:上线事件消息对应的上线时间距当前的时长不超过预设时长、上线事件消息对应的客户端在预设时长内未被推送过推送任务、任务生成开关是否打开。
在这些可选的实现方式中,上述执行主体可以基于至少一项筛选条件,来确定出上述拉取的上线事件消息中的多个上线事件消息。之后,上述执行主体可以确定上述多个上线事件消息所分别对应的推送任务,也即多个推送任务。
在实践中,筛选条件中的上线事件消息对应的上线时间距当前的时长不超过预设时长,可以指上线事件消息对应的客户端的上线时间(也即登录客户端的时间或启动客户端的时间),距当前的时间的时长,不超过预设时长。用户使用应用(客户端)的时长可能是较短的,如果用户已经退出了客户端(应用),推送的意义就很小了。该筛选条件可以确保推送消息的效果。
筛选条件中的任务生成开关是否打开指,存在一个开关来应对突发场景,比如上线事件消息在第三服务器中堆积过多的情况下,可以关闭开关。这时候,上述执行主体可以暂时不再确定推送任务。该筛选条件可以避免推送消息的堆积。
上线事件消息对应的客户端在预设时长内(也即预设历史时长内)未被推送过推送任务指,上线事件消息对应的客户端之前的一段时间内未接收过推送任务,比如在过去的1小时内未接收过该服务端所推送的消息。该筛选条件可以避免用户频繁接收到推送的消息。
在本实施例的一些可选的实现方式中,上述拉取步骤中的确定拉取的上线事件消息中的多个上线事件消息所对应的多个推送任务,可以包括:通过上线事件消息对应的客户端的类型标识,确定多个上线事件消息对应的多个推送任务,其中,每个类型标识存在相对应的推送任务。
在这些可选的实现方式中,上述执行主体可以利用客户端的类型标识(appID),确定推送任务。比如,一个类型标识可以指示极速版客户端,另一个类型标识可以指示标准版客户端等等。
这些实现方式可以针对不同的客户端类型标识,准确地对每个用户的客户端确定出不同的推送任务。
进一步参考图5,作为对上述各图所示方法的实现,本申请提供了一种消息推送装置的一个实施例,该装置实施例与图2所示的方法实施例相对应,除下面所记载的特征外,该装置实施例还可以包括与图2所示的方法实施例相同或相应的特征或效果。该装置具体可以应用于各种电子设备中。
如图5所示,本实施例的消息推送装置500包括:获取单元501、匹配单元502和推送单元503。其中,获取单元501,被配置成获取用于指示向客户端推送消息的多个推送任务,将令牌桶中的令牌分别颁发给所述多个推送任务,其中,所述令牌指示推送任务将被执行;匹配单元502,被配置成执行匹配步骤:对于所述多个推送任务中的推送任务,将该推送任务的相关信息与该推送任务的预设推送条件进行匹配,并将相关信息与所述预设推送条件不相匹配的推送任务对应的令牌归还给所述令牌桶;推送单元503,被配置成执行所述多个推送任务中,仍然保留有对应的令牌的推送任务。
在本实施例中,消息推送装置500的获取单元501、匹配单元502和推送单元503的具体处理及其所带来的技术效果可分别参考图2对应实施例中步骤201、步骤202和步骤203的相关说明,在此不再赘述。
在本实施例的一些可选的实现方式中,所述将令牌桶中的令牌分别颁发给所述多个推送任务分别对应的客户端,以及所述执行匹配步骤,在一个令牌颁发周期内完成。
在本实施例的一些可选的实现方式中,所述匹配单元,进一步被配置成按照如下方式执行所述将该推送任务的相关信息与该推送任务的预设推送条件进行匹配:在该推送任务的预设推送条件的数量为至少两个的情况下,响应于确定该推送任务的相关信息与当前的预设推送条件相匹配,则将匹配出的该推送任务的相关信息与下一个预设推送条件进行匹配;响应于确定该推送任务与当前的预设推送条件不相匹配,则停止匹配过程,确定该推送任务的相关信息与所述预设推送条件不相匹配。
在本实施例的一些可选的实现方式中,所述装置还包括:第一执行单元,被配置成执行连接步骤:响应于接收到客户端发送的连接建立请求,与该客户端建立通信连接,获取该客户端的上线事件消息;第二执行单元,被配置成执行加入步骤:将该客户端的上线事件消息加入消息集合;第三执行单元,被配置成执行拉取步骤:从消息集合中拉取上线事件消息,确定拉取的上线事件消息中的多个上线事件消息所对应的所述多个推送任务。
在本实施例的一些可选的实现方式中,所述服务端包括第一服务器、第二服务器和第三服务器,所述消息集合为先进先出的消息队列,所述连接步骤为所述第一服务器执行的,所述加入步骤为所述第二服务器执行的,所述拉取步骤为所述第三服务器执行的。
在本实施例的一些可选的实现方式中,第三执行单元,进一步被配置成按照如下方式执行所述确定拉取的上线事件消息中的多个上线事件消息所对应的所述多个推送任务:基于以下的至少一项筛选条件,确定拉取的上线事件消息中的多个上线事件消息:上线事件消息对应的上线时间距当前的时长不超过预设时长、上线事件消息对应的客户端在预设时长内未被推送过推送任务、任务生成开关是否打开。
在本实施例的一些可选的实现方式中,第三执行单元,进一步被配置成按照如下方式执行所述确定拉取的上线事件消息中的多个上线事件消息所对应的所述多个推送任务:通过上线事件消息对应的客户端的类型标识,确定所述多个上线事件消息对应的多个推送任务,其中,每个类型标识存在相对应的推送任务。
在本实施例的一些可选的实现方式中,所述预设推送条件包括推送任务对应的以下的至少一项:流量域名条件、客户端下载渠道条件、客户端版本条件、设备标识分组条件、设备标识条件、推送时段范围条件、前缀兼设备标识条件、用户的时间间隔条件。
在本实施例的一些可选的实现方式中,所述预设推送条件包括推送任务对应的流量域名条件;所述匹配单元,进一步被配置成按照如下方式执行所述将该推送任务的相关信息与该推送任务的预设推送条件进行匹配:对于所述多个推送任务中的推送任务,确定该推送任务对应的流量域名,其中,每个流量域名存在对应的流量峰值阈值;对于将要利用该推送任务对应的流量域名指示的流量域进行推送的推送任务,预测流量峰值,其中,参与预测的推送任务存在对应的令牌;若所预测的流量峰值不超过所述流量峰值阈值,则确定该推送任务的相关信息与该推送任务的流量域名条件相匹配。
在本实施例的一些可选的实现方式中,在所述预设推送条件包括推送任务对应的所述用户的时间间隔的情况下,响应于同一个客户端对应的相同推送任务为至少两个,所述相同推送任务中保留有令牌的个数为一个。
在本实施例的一些可选的实现方式中,所述预设推送条件包括推送任务对应的设备标识分组条件;所述匹配单元,进一步被配置成按照如下方式执行所述将该推送任务的相关信息与该推送任务的预设推送条件进行匹配:确定该推送任务指示的客户端的设备标识,其中,所述设备标识为号码;对所述设备标识求余,得到该推送任务对应的余数,将所述余数划分到所述余数的数值对应的余数数值组,并将该余数数值组作为目标余数数值组;确定该推送任务的预设余数数值组中,是否包括所述目标余数数值组,其中,所述预设余数数值组的数量为至少一个;若确定包括所述目标余数数值组,则确定该推送任务的相关信息与该推送任务的设备标识分组条件相匹配。
在本实施例的一些可选的实现方式中,所述预设推送条件包括推送任务对应的前缀兼设备标识条件;所述匹配单元,进一步被配置成按照如下方式执行所述将该推送任务的相关信息与该推送任务的预设推送条件进行匹配:确定该推送任务的前缀字段,将所述前缀字段和该推送任务的设备标识进行组合,得到前缀标识组合,将该前缀标识组合作为目标前缀标识组合;在该推送任务对应的预设前缀标识集合中,查找是否存在所述目标前缀标识组合;若查找到,则确定该推送任务的相关信息与该推送任务的任务前缀兼设备标识条件相匹配。
在本实施例的一些可选的实现方式中,所述预设推送条件还包括预设推送数量;所述匹配单元,进一步被配置成按照如下方式执行所述将该推送任务的相关信息与该推送任务的预设推送条件进行匹配:判断当前匹配出的推送任务的数量是否超过所述预设推送数量;若超过所述预设推送数量,则从所述当前匹配出的推送任务中,确定符合所述预设推送数量的目标推送任务,并确定所述目标推送任务的相关信息与所述目标推送任务所对应的预设推送数量相匹配;若未超过所述预设推送数量,则直接确定所述当前匹配出的推送任务的相关信息与该推送任务的预设推送数量相匹配。
在本实施例的一些可选的实现方式中,所述预设推送条件还包括推送任务对应的任务限量数量,所述匹配单元,进一步被配置成按照如下方式执行所述将该推送任务的相关信息与该推送任务的预设推送条件进行匹配:判断当前匹配出的推送任务中是否有存在且已达到任务限量数量的推送任务;若判断的结果为有,则确定判断出的推送任务的相关信息与该推送任务的任务限量数量不相匹配。
根据本申请的实施例,本申请还提供了一种电子设备和一种可读存储介质。
如图6所示,是根据本申请实施例的消息推送方法的电子设备的框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本申请的实现。
如图6所示,该电子设备包括:一个或多个处理器601、存储器602,以及用于连接各部件的接口,包括高速接口和低速接口。各个部件利用不同的总线互相连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器可以对在电子设备内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示GUI的图形信息的指令。在其它实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个电子设备,各个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器***)。图6中以一个处理器601为例。
存储器602即为本申请所提供的非瞬时计算机可读存储介质。其中,存储器存储有可由至少一个处理器执行的指令,以使至少一个处理器执行本申请所提供的消息推送方法。本申请的非瞬时计算机可读存储介质存储计算机指令,该计算机指令用于使计算机执行本申请所提供的消息推送方法。
存储器602作为一种非瞬时计算机可读存储介质,可用于存储非瞬时软件程序、非瞬时计算机可执行程序以及模块,如本申请实施例中的消息推送方法对应的程序指令/模块(例如,附图5所示的获取单元501、匹配单元502和推送单元503)。处理器601通过运行存储在存储器602中的非瞬时软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例中的消息推送方法。
存储器602可以包括存储程序区和存储数据区,其中,存储程序区可存储操作***、至少一个功能所需要的应用程序;存储数据区可存储根据消息推送电子设备的使用所创建的数据等。此外,存储器602可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些实施例中,存储器602可选包括相对于处理器601远程设置的存储器,这些远程存储器可以通过网络连接至消息推送电子设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
消息推送方法的电子设备还可以包括:输入装置603和输出装置604。处理器601、存储器602、输入装置603和输出装置604可以通过总线或者其他方式连接,图6中以通过总线连接为例。
输入装置603可接收输入的数字或字符信息,以及产生与消息推送电子设备的用户设置以及功能控制有关的键信号输入,例如触摸屏、小键盘、鼠标、轨迹板、触摸板、指示杆、一个或者多个鼠标按钮、轨迹球、操纵杆等输入装置。输出装置604可以包括显示设备、辅助照明装置(例如,LED)和触觉反馈装置(例如,振动电机)等。该显示设备可以包括但不限于,液晶显示器(LCD)、发光二极管(LED)显示器和等离子体显示器。在一些实施方式中,显示设备可以是触摸屏。
此处描述的***和技术的各种实施方式可以在数字电子电路***、集成电路***、专用ASIC(专用集成电路)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程***上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储***、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储***、该至少一个输入装置、和该至少一个输出装置。
这些计算程序(也称作程序、软件、软件应用、或者代码)包括可编程处理器的机器指令,并且可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。如本文使用的,术语“机器可读介质”和“计算机可读介质”指的是用于将机器指令和/或数据提供给可编程处理器的任何计算机程序产品、设备、和/或装置(例如,磁盘、光盘、存储器、可编程逻辑装置(PLD)),包括,接收作为机器可读信号的机器指令的机器可读介质。术语“机器可读信号”指的是用于将机器指令和/或数据提供给可编程处理器的任何信号。
为了提供与用户的交互,可以在计算机上实施此处描述的***和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的***和技术实施在包括后台部件的计算***(例如,作为数据服务器)、或者包括中间件部件的计算***(例如,应用服务器)、或者包括前端部件的计算***(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的***和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算***中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将***的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机***可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。
附图中的流程图和框图,图示了按照本申请各种实施例的***、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本申请实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元也可以设置在处理器中,例如,可以描述为:一种处理器包括获取单元、匹配单元和推送单元。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定,例如,获取单元还可以被描述为“获取用于指示向客户端推送消息的多个推送任务,将令牌桶中的令牌分别颁发给所述多个推送任务的单元”。
作为另一方面,本申请还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的装置中所包含的;也可以是单独存在,而未装配入该装置中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该装置执行时,使得该装置:获取用于指示向客户端推送消息的多个推送任务,将令牌桶中的令牌分别颁发给所述多个推送任务,其中,所述令牌指示推送任务将被执行;执行匹配步骤:对于所述多个推送任务中的推送任务,将该推送任务的相关信息与该推送任务的预设推送条件进行匹配,并将相关信息与所述预设推送条件不相匹配的推送任务对应的令牌归还给所述令牌桶;执行所述多个推送任务中,仍然保留有对应的令牌的推送任务。
以上描述仅为本申请的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本申请中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本申请中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。

Claims (14)

1.一种消息推送方法,用于服务端,所述方法包括:
获取用于指示向客户端推送消息的多个推送任务,将令牌桶中的令牌分别颁发给所述多个推送任务,其中,所述令牌指示推送任务将被执行;
执行匹配步骤:对于所述多个推送任务中的推送任务,将该推送任务的相关信息与该推送任务的预设推送条件进行匹配,并将相关信息与所述预设推送条件不相匹配的推送任务对应的令牌归还给所述令牌桶;
执行所述多个推送任务中,仍然保留有对应的令牌的推送任务;
所述方法还包括:
执行连接步骤:响应于接收到客户端发送的连接建立请求,与该客户端建立通信连接,获取该客户端的上线事件消息;执行加入步骤:将该客户端的上线事件消息加入消息集合;执行拉取步骤:从消息集合中拉取上线事件消息,确定拉取的上线事件消息中的多个上线事件消息所对应的所述多个推送任务;
所述确定拉取的上线事件消息中的多个上线事件消息所对应的所述多个推送任务,包括:
基于以下的至少一项筛选条件,确定拉取的上线事件消息中的多个上线事件消息:上线事件消息对应的上线时间距当前的时长不超过预设时长、上线事件消息对应的客户端在预设时长内未被推送过推送任务、任务生成开关是否打开。
2.根据权利要求1所述的方法,其中,所述将令牌桶中的令牌分别颁发给所述多个推送任务分别对应的客户端,以及所述执行匹配步骤,在一个令牌颁发周期内完成。
3.根据权利要求1所述的方法,其中,所述将该推送任务的相关信息与该推送任务的预设推送条件进行匹配,包括:
在该推送任务的预设推送条件的数量为至少两个的情况下,响应于确定该推送任务的相关信息与当前的预设推送条件相匹配,则将匹配出的该推送任务的相关信息与下一个预设推送条件进行匹配;
响应于确定该推送任务与当前的预设推送条件不相匹配,则停止匹配过程,确定该推送任务的相关信息与所述预设推送条件不相匹配。
4.根据权利要求1所述的方法,其中,所述服务端包括第一服务器、第二服务器和第三服务器,所述消息集合为先进先出的消息队列,所述连接步骤为所述第一服务器执行的,所述加入步骤为所述第二服务器执行的,所述拉取步骤为所述第三服务器执行的。
5.根据权利要求4所述的方法,其中,所述确定拉取的上线事件消息中的多个上线事件消息所对应的所述多个推送任务,还包括:
通过上线事件消息对应的客户端的类型标识,确定所述多个上线事件消息对应的多个推送任务,其中,每个类型标识存在相对应的推送任务。
6.根据权利要求1所述的方法,其中,所述预设推送条件包括推送任务对应的以下的至少一项:流量域名条件、客户端下载渠道条件、客户端版本条件、设备标识分组条件、设备标识条件、推送时段范围条件、前缀兼设备标识条件、用户的时间间隔条件。
7.根据权利要求1或6所述的方法,其中,所述预设推送条件包括推送任务对应的流量域名条件;
所述将该推送任务的相关信息与该推送任务的预设推送条件进行匹配,包括:
对于所述多个推送任务中的推送任务,确定该推送任务对应的流量域名,其中,每个流量域名存在对应的流量峰值阈值;
对于将要利用该推送任务对应的流量域名指示的流量域进行推送的推送任务,预测流量峰值,其中,参与预测的推送任务存在对应的令牌;
若所预测的流量峰值不超过所述流量峰值阈值,则确定该推送任务的相关信息与该推送任务的流量域名条件相匹配。
8.根据权利要求1或6所述的方法,其中,
在所述预设推送条件包括推送任务对应的用户的时间间隔的情况下,响应于同一个客户端对应的相同推送任务为至少两个,所述相同推送任务中保留有令牌的个数为一个。
9.根据权利要求1或6所述的方法,其中,所述预设推送条件包括推送任务对应的设备标识分组条件;
所述将该推送任务的相关信息与该推送任务的预设推送条件进行匹配,包括:
确定该推送任务指示的客户端的设备标识,其中,所述设备标识为号码;
对所述设备标识求余,得到该推送任务对应的余数,将所述余数划分到所述余数的数值对应的余数数值组,并将该余数数值组作为目标余数数值组;
确定该推送任务的预设余数数值组中,是否包括所述目标余数数值组,其中,所述预设余数数值组的数量为至少一个;
若确定包括所述目标余数数值组,则确定该推送任务的相关信息与该推送任务的设备标识分组条件相匹配。
10.根据权利要求1或6所述的方法,其中,所述预设推送条件包括推送任务对应的前缀兼设备标识条件;
所述将该推送任务的相关信息与该推送任务的预设推送条件进行匹配,包括:
确定该推送任务的前缀字段,将所述前缀字段和该推送任务的设备标识进行组合,得到前缀标识组合,将该前缀标识组合作为目标前缀标识组合;
在该推送任务对应的预设前缀标识集合中,查找是否存在所述目标前缀标识组合;
若查找到,则确定该推送任务的相关信息与该推送任务的任务前缀兼设备标识条件相匹配。
11.根据权利要求1或6所述的方法,其中,所述预设推送条件还包括预设推送数量;
所述将该推送任务的相关信息与该推送任务的预设推送条件进行匹配,还包括:
判断当前匹配出的推送任务的数量是否超过所述预设推送数量;
若超过所述预设推送数量,则从所述当前匹配出的推送任务中,确定符合所述预设推送数量的目标推送任务,并确定所述目标推送任务的相关信息与所述目标推送任务所对应的预设推送数量相匹配;若未超过所述预设推送数量,则直接确定所述当前匹配出的推送任务的相关信息与该推送任务的预设推送数量相匹配。
12.根据权利要求1或6所述的方法,其中,所述预设推送条件还包括推送任务对应的任务限量数量,所述将该推送任务的相关信息与该推送任务的预设推送条件进行匹配,还包括:
判断当前匹配出的推送任务中是否有存在且已达到任务限量数量的推送任务;
若判断的结果为有,则确定判断出的推送任务的相关信息与该推送任务的任务限量数量不相匹配。
13.一种电子设备,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-12中任一所述的方法。
14.一种计算机可读存储介质,其上存储有计算机程序,其中,该程序被处理器执行时实现如权利要求1-12中任一所述的方法。
CN202011169087.7A 2020-10-28 2020-10-28 消息推送方法和装置 Active CN112311597B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011169087.7A CN112311597B (zh) 2020-10-28 2020-10-28 消息推送方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011169087.7A CN112311597B (zh) 2020-10-28 2020-10-28 消息推送方法和装置

Publications (2)

Publication Number Publication Date
CN112311597A CN112311597A (zh) 2021-02-02
CN112311597B true CN112311597B (zh) 2023-01-31

Family

ID=74332136

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011169087.7A Active CN112311597B (zh) 2020-10-28 2020-10-28 消息推送方法和装置

Country Status (1)

Country Link
CN (1) CN112311597B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115378878B (zh) * 2021-05-21 2023-11-14 北京字跳网络技术有限公司 Cdn的调度方法、装置、设备及存储介质
CN114650318B (zh) * 2022-02-24 2024-04-19 阿里巴巴(中国)有限公司 开关推送方法
CN116384956B (zh) * 2023-06-05 2023-08-15 天津金城银行股份有限公司 一种消息批量发送方法、装置、设备和存储介质

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104735150A (zh) * 2015-03-27 2015-06-24 努比亚技术有限公司 消息推送方法和装置
CN106233674A (zh) * 2014-04-14 2016-12-14 微软技术许可有限责任公司 使用令牌桶的通信的电池高效同步
CN107395670A (zh) * 2017-06-08 2017-11-24 百度在线网络技术(北京)有限公司 消息推送方法、装置、设备及计算机可读存储介质
CN109196834A (zh) * 2016-06-03 2019-01-11 维萨国际服务协会 用于被连接的装置的子令牌管理***
CN110247857A (zh) * 2019-05-22 2019-09-17 钛马信息网络技术有限公司 限流方法及装置
CN110381100A (zh) * 2018-04-13 2019-10-25 佛山市顺德区美的电热电器制造有限公司 一种消息推送方法、服务器及计算机可读存储介质
CN111585913A (zh) * 2020-04-30 2020-08-25 武汉众邦银行股份有限公司 基于回收令牌的服务流量限制方法及存储介质

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107426322A (zh) * 2017-07-31 2017-12-01 深圳市金立通信设备有限公司 一种推送消息目标匹配方法、服务器、终端以及计算机可读存储介质
CN110300050B (zh) * 2019-05-23 2023-02-07 中国平安人寿保险股份有限公司 消息推送方法、装置、计算机设备及存储介质

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106233674A (zh) * 2014-04-14 2016-12-14 微软技术许可有限责任公司 使用令牌桶的通信的电池高效同步
CN104735150A (zh) * 2015-03-27 2015-06-24 努比亚技术有限公司 消息推送方法和装置
CN109196834A (zh) * 2016-06-03 2019-01-11 维萨国际服务协会 用于被连接的装置的子令牌管理***
CN107395670A (zh) * 2017-06-08 2017-11-24 百度在线网络技术(北京)有限公司 消息推送方法、装置、设备及计算机可读存储介质
CN110381100A (zh) * 2018-04-13 2019-10-25 佛山市顺德区美的电热电器制造有限公司 一种消息推送方法、服务器及计算机可读存储介质
CN110247857A (zh) * 2019-05-22 2019-09-17 钛马信息网络技术有限公司 限流方法及装置
CN111585913A (zh) * 2020-04-30 2020-08-25 武汉众邦银行股份有限公司 基于回收令牌的服务流量限制方法及存储介质

Also Published As

Publication number Publication date
CN112311597A (zh) 2021-02-02

Similar Documents

Publication Publication Date Title
CN112311597B (zh) 消息推送方法和装置
CN110233742B (zh) 一种群组建立方法、***、终端和服务器
CN111913884A (zh) 分布式测试方法、装置、设备、***和可读存储介质
CN111669438A (zh) 直播消息传输方法、装置、电子设备及介质
CN112561332B (zh) 模型管理方法、装置、电子设备、存储介质和程序产品
CN111787088A (zh) 小程序数据处理的方法和装置
CN111881339A (zh) 资源信息的推送、通知方法、装置、电子设备及存储介质
CN112069137B (zh) 生成信息的方法、装置、电子设备及计算机可读存储介质
CN110958250A (zh) 一种端口监控方法、装置和电子设备
CN114217996A (zh) 混音方法和装置
CN110750419B (zh) 离线任务的处理方法、装置、电子设备及存储介质
CN112527527A (zh) 消息队列的消费速度控制方法、装置、电子设备和介质
CN111368184A (zh) 智能语音设备的屏保投放方法、设备及存储介质
CN111597461B (zh) 一种目标对象聚集预测方法、装置以及电子设备
CN114281469A (zh) 分布式仿真方法和***
CN114661274A (zh) 用于生成智能合约的方法和装置
CN111741053B (zh) 数据预下载方法、装置、服务器、终端及存储介质
CN112752323A (zh) 热点接入状态的改变方法和装置
CN115277713B (zh) 负载均衡方法和装置
CN112770415A (zh) 关于无线热点的信息处理方法和装置
CN113572704A (zh) 一种信息处理方法、生产端、消费端和服务器
CN111683140A (zh) 用于分发消息的方法和装置
CN113792180B (zh) 推荐场景下的去重方法、装置、电子设备和存储介质
CN113127512B (zh) 多数据流的数据拼接触发方法、装置、电子设备和介质
CN114978644B (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