CN108449256B - 消息推送的处理方法、装置、计算机设备及存储介质 - Google Patents
消息推送的处理方法、装置、计算机设备及存储介质 Download PDFInfo
- Publication number
- CN108449256B CN108449256B CN201810138045.3A CN201810138045A CN108449256B CN 108449256 B CN108449256 B CN 108449256B CN 201810138045 A CN201810138045 A CN 201810138045A CN 108449256 B CN108449256 B CN 108449256B
- Authority
- CN
- China
- Prior art keywords
- pushing
- message
- party
- identifier
- pushed
- 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
Links
Images
Classifications
-
- 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/21—Monitoring or handling of messages
- H04L51/214—Monitoring or handling of messages using selective forwarding
-
- 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/21—Monitoring or handling of messages
- H04L51/23—Reliability checks, e.g. acknowledgments or fault reporting
-
- 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/21—Monitoring or handling of messages
- H04L51/234—Monitoring or handling of messages for tracking messages
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明适用于通信技术领域,提供了一种消息推送的处理方法,所述处理方法包括:在发起消息推送时,获取待推送消息的消息体、推送方的设备标识、接收方的设备标识;生成所述待推送消息对应的唯一标识;将所述唯一标识、消息体、推送方的设备标识、接收方的设备标识作为接口参数传入消息推送***提供的推送接口,以使所述消息推送***根据所述唯一标识查询所述推送方的设备标识对应的分组并根据查询结果执行推送操作。本发明通过所述唯一标识来协调消息漏发和重发之间的处理逻辑,使得推送方只需关注消息推送的发起逻辑和生成唯一标识,而是否推送最终由消息推送***根据缓存的查询结果完成,既保证了不漏发的情况,又控制了重发的问题。
Description
技术领域
本发明属于通信技术领域,尤其涉及一种消息推送的处理方法、装置、计算机设备及存储介质。
背景技术
在消息推送***中,无论是通知推送、短信推送,还是社交类应用程序中的聊天消息、站内信的推送,都会遇到消息漏发及重发的问题。消息漏发和消息重发在一定程度上是相互矛盾的,比如在采用失败重发机制去解决漏发的问题时,由于接收方接收消息是异步的,容易出现接收方已收到消息、而推送方却认为消息发送失败要求重发的现象,从而导致接收方多次收到同一消息,降低了用户的体验感。可见,现有技术在漏发监控和重发启动之间存在较大的矛盾,重发和漏发的协调逻辑欠佳,容易造成网络资源的浪费、推送的消息丢失或反复接收的现象。
发明内容
本发明实施例提供了一种消息推送的处理方法、装置、计算机设备及存储介质,以解决现有技术中重发和漏发的协调逻辑欠佳的问题。
第一方面,本发明实施例提供了一种消息推送的处理方法,所述处理方法包括:
在发起消息推送时,获取待推送消息的消息体、推送方的设备标识、接收方的设备标识;
生成所述待推送消息对应的唯一标识;
将所述唯一标识、消息体、推送方的设备标识、接收方的设备标识作为接口参数传入消息推送***提供的推送接口,以使所述消息推送***根据所述唯一标识查询所述推送方的设备标识对应的分组并根据查询结果执行推送操作。
进一步地,所述生成所述待推送消息对应的唯一标识包括:
采用随机数算法生成36位随机数串,并剔除所述36位随机数串中的4位分隔符,得到32位随机数串;
根据当前的时间信息生成14位的时间戳;
将所述时间戳添加至所述32位随机数串末尾,得到46位的随机数串,作为所述待推送消息的唯一标识。
进一步地,所述处理方法还包括:
按照预设时间间隔从所述推送接口查询所述消息推送***对所述待推送消息的处理结果;
若所述预设时间间隔内未查询到处理结果或者查询到的处理结果不为预设结果码时,将所述唯一标识、消息体、推送方的设备标识、接收方的设备标识传入所述推送接口,以再次发起对所述待推送消息的推送。
第二方面,本发明实施例提供了一种消息推送的处理方法,所述处理方法包括:
获取推送方通过推送接口传入的接口参数,所述接口参数包括待推送消息的唯一标识、消息体、推送方的设备标识、接收方的设备标识;
根据所述唯一标识在预设缓存中查询所述推送方的设备标识对应的分组;
若所述推送方的设备标识对应的分组中存在相同的所述唯一标识,则结束推送处理流程;
若所述推送方的设备标识对应的分组中不存在相同的所述唯一标识,则根据所述待推送消息的消息体、推送方的设备标识及接收方的设备标识执行推送操作。
进一步地,在根据所述待推送消息的消息体、推送方的设备标识及接收方的设备标识执行推送操作之后,所述处理方法包括:
若推送操作执行成功,则将所述唯一标识添加至所述推送方的设备标识对应的分组中。
进一步地,在获取推送方通过推送接口传入的接口参数之前,所述处理方法还包括:
获取推送方发送的配置请求,所述配置请求中包括推送方的设备标识;
在预设缓存中创建所述推送方的设备标识对应的分组,所述分组用于存储所述推送方的设备标识及其对应的已推送消息的唯一标识。
第三方面,本发明实施例提供了一种消息推送的处理装置,所述处理装置包括:
获取模块,用于在发起消息推送时,获取待推送消息的消息体、推送方的设备标识、接收方的设备标识;
生成模块,用于生成所述待推送消息对应的唯一标识;
推送请求模块,用于将所述唯一标识、消息体、推送方的设备标识、接收方的设备标识作为接口参数传入消息推送***提供的推送接口,以使所述消息推送***根据所述唯一标识查询所述推送方的设备标识对应的分组并根据查询结果执行推送操作。
第四方面,本发明实施例提供了一种消息推送的处理装置,所述处理装置包括:
参数获取模块,用于获取推送方通过推送接口传入的接口参数,所述接口参数包括待推送消息的唯一标识、消息体、推送方的设备标识、接收方的设备标识;
标识查询模块,用于根据所述唯一标识在预设缓存中查询所述推送方的设备标识对应的分组;
推送处理模块,用于若所述推送方的设备标识对应的分组中存在相同的所述唯一标识,则结束推送处理流程;否则,根据所述待推送消息的消息体、推送方的设备标识及接收方的设备标识执行推送操作。
第五方面,本发明实施例提供了一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上所述的消息推送的处理方法的步骤。
第六方面,本发明实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的消息推送的处理方法的步骤。
与现有技术相比,本发明实施例通过增设待推送消息的唯一标识,在发起消息推送时,由推送方生成所述待推送消息的唯一标识,将所述唯一标识、消息体、推送方的设备标识、接收方的设备标识作为接口参数传入推送***提供的推送接口,以使所述推送***根据所述唯一标识查询所述推送方的设备标识对应的分组并根据查询结果执行推送操作;从而通过所述唯一标识来协调消息漏发和重发之间的处理逻辑,使得推送方只需关注消息推送的发起逻辑和生成唯一标识,简化了推送方在发起消息推送时的处理方式,而是否推送最终由消息推送***根据缓存的查询结果完成,既保证了不漏发的情况,又控制了重发的问题,有效地解决了消息丢失或反复接收的问题,减少了网络资源的浪费。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的消息推送的处理方法的第一实现流程图;
图2是本发明实施例提供的消息推送的处理方法的第二实现流程图;
图3是本发明实施例提供的消息推送的处理方法的第三实现流程图;
图4是本发明实施例提供的消息推送的处理方法的第四实现流程图;
图5是本发明实施例提供的消息推送的处理方法的第五实现流程图;
图6是本发明实施例提供的消息推送的处理装置的第一组成结构图;
图7是本发明实施例提供的消息推送的处理装置的第二组成结构图;
图8是本发明实施例提供的计算机设备的示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供的消息推送的处理方法应用于调用设备及消息推送***。其中,所述调用设备为移动终端上的应用程序的后台服务器,既可以作为消息的推送方,通过调用消息推送***提供的推送接口来发起消息推送请求,也可以作为接收方,从消息推送***上接收推送消息。可选地,所述消息推送包括但不限于通知推送、短信推送、社交类应用程序中的聊天消息推送、站内信推送。
下面将对消息推送的处理方法在调用设备一侧的处理流程进行详细的说明。
图1示出了本发明实施例提供的消息推送的处理方法的第一实现流程。本发明实施例提供的所述消息推送的处理方法应用于调用设备。参阅图1,所述消息推送的处理方法包括:
在步骤S101中,在发起消息推送时,获取待推送消息的消息体、推送方的设备标识、接收方的设备标识。
在本发明实施例中,消息推送***提供推送接口供调用设备调用。示例性地,所述推送接口可以为:ip:port/admin/msgFacade。在调用推送接口发起消息推送时,所述调用方设备获取待推送消息的消息体、推送方的设备标识、接收方的设备标识。所述消息体为消息内容。
在这里,所述设备标识为不同的应用程序的后台服务器在所述消息推送***上的身份编码,用于消息推送***区分不同的调用设备。每一个调用设备在使用该推送接口前,需要在消息推送***上进行配置,设置其对应的设备标识。
在步骤S102中,生成所述待推送消息对应的唯一标识。
本发明实施例中,所述待推送消息的唯一标识为不同的待推送消息的身份编码,用于消息推送***、作为推送方/接收方的调用设备区分不同的待推送消息,由作为推送方的调用设备在对消息进行首次推送时生成,以建立不与其他待推送消息相冲突的识别码。每一条待推送消息对应一个唯一标识。
需要注意的是,所述不同的待推送消息按照不同的业务场景区分,同一业务场景下相同内容的推送属于一条待推送消息。示例性地,作为推送方的调用设备A通过消息推送***向作为接收方的调用设备B发送一条消息“你好吗?”,在首次推送前生成对应的一个唯一标识1;若在推送过程中,消息推送***推送失败执行重复推送时,该条消息“你好吗?”仍对应唯一标识1,重复推送时不再生成新的唯一标识,该两次推送属于同一条待推送消息的范畴。若作为推送方的调用设备不相同或者作为推送方的同一调用设备在不同时间发起推送,则属于不同的待推送消息,使用不同的唯一标识。比如,作为推送方的调用设备A通过消息推送***向作为接收方的调用设备B在两点发送一条消息“你在吗?”,在四点又发送一条消息“你在吗?”,则属于两条不同的待推送消息,使用不同的唯一标识。
在步骤S103中,将所述唯一标识、消息体、推送方的设备标识、接收方的设备标识作为接口参数传入消息推送***提供的推送接口,以使所述消息推送***根据所述唯一标识查询所述推送方的设备标识对应的分组并根据查询结果执行推送操作。
在生成待推送消息的唯一标识后,调用设备通过HTTP的方式调用推送接口,将所述唯一标识、消息体、推送方的设备标识、接收方的设备标识打包为推送请求,传入所述推送接口,以发起推送请求,使得所述推送***根据所述接口参数执行推送操作。所述消息推送***在接收到所述唯一标识、消息体、推送方的设备标识、接收方的设备标识后,根据所述唯一标识查询所述推送方的设备标识对应的分组,并根据查询结果确定是否执行推送操作。
本发明实施例通过增设待推送消息的唯一标识,在发起消息推送时,由推送方生成所述待推送消息的唯一标识,将所述唯一标识、消息体、推送方的设备标识、接收方的设备标识作为接口参数传入推送***提供的推送接口,以向消息推送***发起推送请求,从而使得推送方只需关注消息推送的发起逻辑和生成唯一标识,简化了推送方的处理方式,而是否推送最终由消息推送***根据对唯一标识的查询结果决定,既保证了不漏发的情况,又控制了重发的问题。
进一步地,在图1提供的消息推送的处理方法的第一实现流程的基础上,提出本发明实施例提供的消息推送的处理方法的第二实现流程。
如图2所示,是本发明实施例提供的消息推送的处理方法的第二实现流程示意图。本发明实施例使用Java生成通用唯一识别码UUID,然后基于通用唯一识别码UUID(Universally Unique Identifier)生成所述唯一标识。所述步骤S102生成所述待推送消息对应的唯一标识包括:
在步骤S1021中,采用随机数算法生成36位随机数串,并剔除所述36位随机数串中的4位分隔符,得到32位随机数串。
在这里,所述36位随机数串为标准格式的UUID,即xxxxxxxx-xxxx-xxxx-xxxxxx-xxxxxxxxxx(8-4-4-4-12)。其中每个“x”是0-9或a-f范围内的一个十六进制的数字。每个“-”为分隔符,可以通过执行方式一:
UUID uuid=UUID.randomUUID();
String str=uuid.toString();
或者执行方式二:
UUID uuid=UUID.randomUUID();
System.out.println(uuid.toString().replace("-",""));
去掉所述36位随机数串中的4位分隔符“-”,所得到的32位随机数串即所述通用唯一识别码UUID。
示例性地,若采用随机数算法生成的36位随机数串为2f393d0f-0479-4d8f-9189-0d1efe160fe5,剔除所述36位随机数串中的4位分隔符后得到的32位随机数串为2f393d0f04794d8f91890d1efe160fe5。
在步骤S1022中,根据当前的时间信息生成14位的时间戳。
在本发明实施例中,所述14位的时间戳的格式为yyyymmddhhMMss,其中yyyy表示年,mm表示月,dd表示日,hh表示小时,MM表示分,ss表示秒,比如20181221120923。
在步骤S1023中,将所述时间戳添加至所述32位随机数串末尾,得到46位的随机数串,作为所述待推送消息的唯一标识。
在得到32位随机数串和14位时间戳之后,将所述时间戳添加至所述32位随机数串末尾,以组合所述32位随机数串和14位时间戳,得到所述待推送消息的唯一标识。如前所述,若32位随机数串为:2f393d0f04794d8f91890d1efe160fe5,14位时间戳为:20181221120923,则组合得到的唯一标识为:2f393d0f04794d8f91890d1efe160fe520180121120923。
本发明实施例使用UUID,保证了所生成的唯一标识不会重复,且对同一时空中的所有设备都是唯一的,保证了每一待推送消息的标识信息的唯一性。
进一步地,在图1或图2提供的消息推送的处理方法的实现流程的基础上,提出本发明实施例提供的消息推送的处理方法的第三实现流程。
如图3所示,是本发明实施例提供的消息推送的处理方法的第三实现流程示意图。在这里,每一个调用设备在使用该推送接口前,除了在消息推送***上设置其对应的设备标识外,还可以进一步设置重复调用策略,自行约定针对同一待推送消息对推送接口重复调用的时间间隔,如在发起推送起的约定时间间隔内未接收到返回或返回错误,可执行重复调用,直至推送成功。在将所述唯一标识、消息体、推送方的设备标识、接收方的设备标识作为接口参数传入推送***提供的推送接口之后,所述处理方法还可以包括:
在步骤S104中,按照预设时间间隔从所述推送接口查询所述消息推送***对所述待推送消息的处理结果。
示例性地,假设所述调用设备自行约定对推送接口重复调用的时间间隔为1分钟,则从发起推送请求起,所述调用设备可以每隔一分钟查询所述推送接口,以获取所述消息推送***对所述待推送消息的处理结果。
在步骤S105中,若所述预设时间间隔内未查询到处理结果或者查询到的处理结果不为预设结果码时,将所述唯一标识、消息体、推送方的设备标识、接收方的设备标识传入所述推送接口,以再次发起对所述待推送消息的推送。
在这里,本发明实施例预先设置了消息推送成功的结果码,比如0000。若消息成功推送到接收方时,所述消息推送***会通过推送接口向推送方返回所述预设结果码,否则不返回预设结果码或者返回其他字符串。作为推送方的调用设备在所述预设时间间隔内未查询到处理结果时,表示消息推送超时,或者查询到的处理结果不为预设结果码时,表示推送执行错误,此时,所述调用设备可以发起对所述待推送消息的推送请求,即再次将所述唯一标识、消息体、接收方的设备标识、推送方的设备标识传入所述推送接口,直至推送成功,从而解决了消息漏发的问题。调用设备无需关心重发问题,只需要在约定时间内,接口未返回或返回失败时,重新调用即可,进一步简化了调用设备处理漏发问题的逻辑。
可选地,每一个调用设备在使用该推送接口前,还可以进一步设置对推送接口重复调用的次数阈值,如在约定时间间隔内未接收到返回或返回错误的发生次数在所述次数阈值内,可执行重复调用,直至推送成功;若大于所述次数阈值,则不再调用所述推送接口。
以上为消息推送的处理方法在调用设备一侧的处理流程,下面将对消息推送的处理方法在消息推送***一侧的处理流程进行详细的说明。
图4示出了本发明实施例提供的消息推送的处理方法的第四实现流程。本发明实施例提供的所述消息推送的处理方法应用于消息推送***。参阅图4,所述消息推送的处理方法包括:
在步骤S401中,获取推送方通过推送接口传入的接口参数,所述接口参数包括待推送消息的唯一标识、消息体、推送方的设备标识、接收方的设备标识。
如前所述,所述推送接口可以为:ip:port/admin/msgFacade。作为推送方的调用设备通过调用所述推送接口,向所述推送接口传入所述唯一标识、消息体、推送方的设备标识、接收方的设备标识,来向所述消息推送***发起消息推送;消息推送***则通过所述推送接口获取待推送消息的唯一标识、消息体、推送方的设备标识、接收方的设备标识。
在步骤S402中,根据所述唯一标识在预设缓存中查询所述推送方的设备标识对应的分组。
在本发明实施例中,每一个调用设备在所述消息推送***上均对应一个分组,用于存储推送方的设备标识及其对应的已推送消息的唯一标识。如前所述,每一个调用设备在作为推送方调用该推送接口前,需要在消息推送***上进行配置,设置其对应的设备标识。因此,在接收到推送方通过推送接口传入的接口参数之前,所述消息推送***需要对调用设备进行配置,所述处理方法还包括:
接收推送方发送的配置请求,所述配置请求中包括推送方的设备标识;
在预设缓存中创建所述推送方的设备标识对应的分组。
在这里,分组按照调用设备的设备标识进行划分,每一个调用设备对应一个分组。通过分组,从而提升了消息推送***对缓存数据的管理效率,也方便了消息推送***查询缓存数据,所述缓存数据包括但不限于调用设备的设备标识、消息的唯一标识。可选地,所述预设缓存可以采用Redis缓存,相比其他数据库既节省了存储空间,又提高了所述推送接口的性能。
每当获取到推送方发送的推送请求时,所述消息推送***调用Redis缓存对Java提供的软件开发包sdk(Software Development Kit),以推送方的设备标识结合待推送消息的唯一标识作为key对缓存数据进行查询。首先获取与所述推送方的设备标识对应的分组,然后匹配所述待推送消息的唯一标识与分组中已有的唯一标识,以查询所述分组中是否存在相同的所述待推送消息的唯一标识。
在步骤S403中,若所述推送方的设备标识对应的分组中存在相同的所述唯一标识,则结束推送处理流程。
在步骤S404中,若所述推送方的设备标识对应的分组中不存在相同的所述唯一标识,则根据所述待推送消息的消息体、推送方的设备标识及接收方的设备标识执行推送操作。
在本发明实施例中,凡是已写入推送方的设备标识对应的分组中的唯一标识,表示所述唯一标识所指代的消息已完成推送且已成功推送。通过步骤S402的查询操作,可以确认所述待推送消息是否为首次推送或者上次推送是否成功。若分组中存在相同的所述唯一标识,则表示所述唯一标识对应的消息在上次推送过程中已成功推送,则结束推送处理流程。若分组中不存在相同的所述唯一标识,则表示所述唯一标识对应的消息为首次推送或者上次推送失败,则获取接收方的设备标识,触发***内部的消息推送模块执行推送流程,以将所述待推送消息的消息体发送至所述接收方。
本发明实施例通过在消息推送***上为每一个调用设备增设对应的分组,用于存储已推送消息的唯一标识。在执行推送操作之前,由消息推送***根据对唯一标识的查询结果决定是执行推送还是结束流程,从而既保证了不漏发的情况,又控制了重发的问题,有效地解决了消息丢失或反复接收的问题,减少了网络资源的浪费。
可选地,作为本发明的一个优选示例,所述每一设备标识对应的分组中,除了存储设备标识及其对应的已推送消息的唯一标识外,还可以增设一项状态栏,记录消息的状态信息,用以区分是首次推送还是重发推送。其中,所述状态信息包括缺省值和已推送。在这里,所述缺省值为状态信息在分组创建时的初始值,当且仅当消息成功推送后,所述状态信息更新为已推送。
在步骤S402查询所述推送方的设备标识对应的分组下是否存在相同的唯一标识时:若存在相同的唯一标识,表示所述待推送消息在上次推送过程已成功推送,则执行步骤S403;若不存在相同的唯一标识且状态栏为缺省值,表示当前的待推送消息为首次推送,则执行推送操作,流转到步骤S404;若存在相同的唯一标识且状态栏为缺省值,表示当前的待推送消息为第n次推送,其中n为不等于1的正整数,执行重复推送,流转到步骤S404。
进一步地,在图4提供的消息推送的处理方法的第四实现流程的基础上,提出本发明实施例提供的消息推送的处理方法的第五实现流程。
如图5所示,是本发明实施例提供的消息推送的处理方法的第五实现流程示意图。在步骤S404根据所述待推送消息的消息体、推送方的设备标识及接收方的设备标识执行推送操作之后,所述处理方法包括:
在步骤S405中,若推送操作执行成功,则将所述唯一标识添加至所述推送方的设备标识对应的分组中。
在这里,当推送操作执行成功,比如接收到***内部的消息推送模块反馈的推送成功状态信息时,在所述推送方的设备标识对应的分组中写入所述唯一标识,以更新所述推送方的设备标识对应的分组记录;同时生成预设结果码,通过所述推送接口向推送方返回预设结果码。本发明实施例通过保存已推送消息的唯一标识,在推送方再次发起对已推送消息的推送请求时能够顺利地结束推送流程,从而有效地避免了已推送消息的反复接收的问题,解决了重发和漏发的协调逻辑欠佳的问题。
应理解,在上述实施例中,各步骤的序号的大小并不意味着执行顺序的先后,各步骤的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
实施例2
图6示出了本发明实施例提供的消息推送的处理装置的第一组成结构图,为了便于说明,仅示出了与本发明实施例相关的部分。
在本发明实施例中,所述消息推送的处理装置用于实现上述图1、图2或图3实施例中所述的消息推送的处理方法,可以是内置于计算机设备的软件单元、硬件单元或者软硬件结合的单元。所述计算机设备为移动终端上的应用程序的后台服务器。可选地,所述消息推送包括但不限于通知推送、短信推送、社交类应用程序中的聊天消息推送、站内信推送。
参阅图6,所述消息推送的处理装置包括:
获取模块61,用于在发起消息推送时,获取待推送消息的消息体、推送方的设备标识、接收方的设备标识;
生成模块62,用于生成所述待推送消息对应的唯一标识;
推送请求模块63,用于将所述唯一标识、消息体、推送方的设备标识、接收方的设备标识作为接口参数传入消息推送***提供的推送接口,以使所述消息推送***根据所述唯一标识查询所述推送方的设备标识对应的分组并根据查询结果执行推送操作。
可选地,所述生成模块62还包括:
第一生成单元621,用于采用随机数算法生成36位随机数串,并剔除所述36位随机数串中的4位分隔符,得到32位随机数串;
第二生成单元622,用于根据当前的时间信息生成14位的时间戳;
添加单元623,用于将所述时间戳添加至所述32位随机数串末尾,得到46位的随机数串,作为所述待推送消息的唯一标识。
可选地,所述处理装置还包括:
结果查询模块64,用于按照预设时间间隔从所述推送接口查询所述消息推送***对所述待推送消息的处理结果;
所述推送请求模块63还用于,若所述预设时间间隔内未查询到处理结果或者查询到的处理结果不为预设结果码时,将所述唯一标识、消息体、推送方的设备标识、接收方的设备标识传入所述推送接口,以再次发起对所述待推送消息的推送。
需要说明的是,本发明实施例中的各模块/单元可以用于实现上述图1、图2或图3所述的方法实施例中的全部技术方案,其具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
图7示出了本发明实施例提供的消息推送的处理装置的第二组成结构图,为了便于说明,仅示出了与本发明实施例相关的部分。
在本发明实施例中,所述消息推送的处理装置用于实现上述图4或图5实施例中所述的消息推送的处理方法,可以是内置于计算机设备的软件单元、硬件单元或者软硬件结合的单元。所述计算机设备为消息推送***对应的后台服务器。
参阅图7,所述消息推送的处理装置包括:
参数获取模块71,用于获取推送方通过推送接口传入的接口参数,所述接口参数包括待推送消息的唯一标识、消息体、推送方的设备标识、接收方的设备标识;
标识查询模块72,用于根据所述唯一标识在预设缓存中查询所述推送方的设备标识对应的分组;
推送处理模块73,用于若所述推送方的设备标识对应的分组中存在相同的所述唯一标识,则结束推送处理流程;否则,根据所述待推送消息的消息体、推送方的设备标识及接收方的设备标识执行推送操作。
可选地,所述处理装置还包括:
添加模块74,用于若推送操作执行成功,则将所述唯一标识添加至所述推送方的设备标识对应的分组中。
可选地,所述处理装置还包括:
配置模块75,用于在获取推送方通过推送接口传入的接口参数之前,获取推送方发送的配置请求,所述配置请求中包括推送方的设备标识;在预设缓存中创建所述推送方的设备标识对应的分组,所述分组用于存储所述推送方的设备标识及其对应的已推送消息的唯一标识。
需要说明的是,本发明实施例中的各模块/单元可以用于实现上述图4或图5所述的方法实施例中的全部技术方案,其具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
实施例3
本实施例提供一计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现实施例1中消息推送的处理方法,为避免重复,这里不再赘述。或者,该计算机程序被处理器执行时实现实施例2中消息推送的处理装置中各模块/单元的功能,为避免重复,这里不再赘述。
可以理解地,所述计算机可读存储介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号和电信信号等。
实施例4
图8是本发明实施例提供的一种计算机设备的示意图。如图8所示,该实施例的计算机设备8包括:处理器80、存储器81以及存储在所述存储器81中并可在所述处理器80上运行的计算机程序82。所述处理器80执行所述计算机程序82时实现上述实施例1中消息推送的处理方法的步骤,例如图1所示的步骤S101至S103,图2实施例中所述的步骤S1021至步骤S1023,图3实施例中所述的步骤S104至S105以及图4实施例中所述的步骤S401至步骤S404,图5实施例中所述的步骤S405,或者,所述处理器80执行所述计算机程序82时实现上述实施例2中所述的消息推送的处理装置中的各模块/单元的功能,例如图6所示模块61至64的功能、图7所示模块71至75的功能
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。
以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。
Claims (10)
1.一种消息推送的处理方法,其特征在于,所述处理方法包括:
在发起消息推送时,获取待推送消息的消息体、推送方的设备标识、接收方的设备标识;
生成所述待推送消息对应的唯一标识;
将所述唯一标识、消息体、推送方的设备标识、接收方的设备标识作为接口参数传入消息推送***提供的推送接口,以使所述消息推送***根据所述唯一标识查询所述推送方的设备标识对应的分组并根据查询结果执行推送操作,所述分组中包括设备标识、唯一标识以及状态栏,所述状态栏包括缺省值和已推送,其中,所述状态栏在分组创建时为缺省值、在消息推送成功后更新为已推送,所述消息推送***查询所述推送方的设备标识对应的分组,若存在所述唯一标识时结束推送操作,若不存在所述唯一标识且状态栏为缺省值时执行推送操作,若存在相同的唯一标识且状态栏为缺省值时执行重复推送。
2.如权利要求1所述的消息推送的处理方法,其特征在于,所述生成所述待推送消息对应的唯一标识包括:
采用随机数算法生成36位随机数串,并剔除所述36位随机数串中的4位分隔符,得到32位随机数串;
根据当前的时间信息生成14位的时间戳;
将所述时间戳添加至所述32位随机数串末尾,得到46位的随机数串,作为所述待推送消息的唯一标识。
3.如权利要求1或2所述的消息推送的处理方法,其特征在于,所述处理方法还包括:
按照预设时间间隔从所述推送接口查询所述消息推送***对所述待推送消息的处理结果;
若所述预设时间间隔内未查询到处理结果或者查询到的处理结果不为预设结果码时,将所述唯一标识、消息体、推送方的设备标识、接收方的设备标识传入所述推送接口,以再次发起对所述待推送消息的推送。
4.一种消息推送的处理方法,其特征在于,所述处理方法包括:
获取推送方通过推送接口传入的接口参数,所述接口参数包括待推送消息的唯一标识、消息体、推送方的设备标识、接收方的设备标识;
根据所述唯一标识在预设缓存中查询所述推送方的设备标识对应的分组;
若所述推送方的设备标识对应的分组中存在相同的所述唯一标识,则结束推送处理流程;
若所述推送方的设备标识对应的分组中不存在相同的所述唯一标识,则根据所述待推送消息的消息体、推送方的设备标识及接收方的设备标识执行推送操作;
所述分组中包括设备标识、唯一标识以及状态栏,所述状态栏包括缺省值和已推送,其中,所述状态栏在分组创建时为缺省值、在消息推送成功后更新为已推送,在查询所述推送方的设备标识对应的分组后,若存在所述唯一标识时结束推送操作,若不存在所述唯一标识且状态栏为缺省值时执行推送操作,若存在相同的唯一标识且状态栏为缺省值时执行重复推送。
5.如权利要求4所述的消息推送的处理方法,其特征在于,在根据所述待推送消息的消息体、推送方的设备标识及接收方的设备标识执行推送操作之后,所述处理方法包括:
若推送操作执行成功,则将所述唯一标识添加至所述推送方的设备标识对应的分组中。
6.如权利要求4所述的消息推送的处理方法,其特征在于,在获取推送方通过推送接口传入的接口参数之前,所述处理方法还包括:
获取推送方发送的配置请求,所述配置请求中包括推送方的设备标识;
在预设缓存中创建所述推送方的设备标识对应的分组,所述分组用于存储所述推送方的设备标识及其对应的已推送消息的唯一标识。
7.一种消息推送的处理装置,其特征在于,所述处理装置包括:
获取模块,用于在发起消息推送时,获取待推送消息的消息体、推送方的设备标识、接收方的设备标识;
生成模块,用于生成所述待推送消息对应的唯一标识;
推送请求模块,用于将所述唯一标识、消息体、推送方的设备标识、接收方的设备标识作为接口参数传入消息推送***提供的推送接口,以使所述消息推送***根据所述唯一标识查询所述推送方的设备标识对应的分组并根据查询结果执行推送操作;
所述分组中包括设备标识、唯一标识以及状态栏,所述状态栏包括缺省值和已推送,其中,所述状态栏在分组创建时为缺省值、在消息推送成功后更新为已推送,所述消息推送***查询所述推送方的设备标识对应的分组,若存在所述唯一标识时结束推送操作,若不存在所述唯一标识且状态栏为缺省值时执行推送操作,若存在相同的唯一标识且状态栏为缺省值时执行重复推送。
8.一种消息推送的处理装置,其特征在于,所述处理装置包括:
参数获取模块,用于获取推送方通过推送接口传入的接口参数,所述接口参数包括待推送消息的唯一标识、消息体、推送方的设备标识、接收方的设备标识;
标识查询模块,用于根据所述唯一标识在预设缓存中查询所述推送方的设备标识对应的分组;
推送处理模块,用于若所述推送方的设备标识对应的分组中存在相同的所述唯一标识,则结束推送处理流程;否则,根据所述待推送消息的消息体、推送方的设备标识及接收方的设备标识执行推送操作;
所述分组中包括设备标识、唯一标识以及状态栏,所述状态栏包括缺省值和已推送,其中,所述状态栏在分组创建时为缺省值、在消息推送成功后更新为已推送,所述推送处理模块还用于,在查询所述推送方的设备标识对应的分组后,若存在所述唯一标识时结束推送操作,若不存在所述唯一标识且状态栏为缺省值时执行推送操作,若存在相同的唯一标识且状态栏为缺省值时执行重复推送。
9.一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至3任一项或者权利要求4至6任一项所述的消息推送的处理方法的步骤。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至3任一项或者权利要求4至6任一项所述的消息推送的处理方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810138045.3A CN108449256B (zh) | 2018-02-10 | 2018-02-10 | 消息推送的处理方法、装置、计算机设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810138045.3A CN108449256B (zh) | 2018-02-10 | 2018-02-10 | 消息推送的处理方法、装置、计算机设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108449256A CN108449256A (zh) | 2018-08-24 |
CN108449256B true CN108449256B (zh) | 2021-05-04 |
Family
ID=63192212
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810138045.3A Active CN108449256B (zh) | 2018-02-10 | 2018-02-10 | 消息推送的处理方法、装置、计算机设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108449256B (zh) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109491765B (zh) * | 2018-10-09 | 2021-07-30 | 创新先进技术有限公司 | 对跨域业务请求的处理方法及装置 |
CN109802995B (zh) * | 2018-12-13 | 2023-04-11 | 深圳壹账通智能科技有限公司 | 消息推送方法、装置、设备及存储介质 |
CN110247963A (zh) * | 2019-05-31 | 2019-09-17 | 北京智慧云行科技有限责任公司 | 一种数据推送方法及*** |
CN111984713A (zh) * | 2020-06-29 | 2020-11-24 | 五八到家有限公司 | 一种数据处理方法、装置、设备和存储介质 |
WO2022036526A1 (zh) * | 2020-08-17 | 2022-02-24 | Oppo广东移动通信有限公司 | 通知消息的处理方法、装置、设备及存储介质 |
CN112187903B (zh) * | 2020-09-22 | 2022-08-26 | 华云工业互联网有限公司 | 一种消息推送方法、装置及消息服务*** |
CN112637151B (zh) * | 2020-12-11 | 2023-05-05 | 深圳市英威腾电气股份有限公司 | 数据消息的传输方法、终端设备、服务器及存储介质 |
CN112579093B (zh) * | 2020-12-11 | 2022-08-12 | 杭州安恒信息技术股份有限公司 | 一种信息推送方法、装置及相关设备 |
CN114374705A (zh) * | 2022-01-06 | 2022-04-19 | 青岛海信智慧生活科技股份有限公司 | 服务集群和消息推送方法 |
CN114553815A (zh) * | 2022-01-29 | 2022-05-27 | 北京金堤科技有限公司 | 一种对消息进行处理的方法及装置 |
CN114584416B (zh) * | 2022-02-11 | 2023-12-19 | 青岛海尔科技有限公司 | 一种电器设备控制方法、***及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104702486A (zh) * | 2013-12-09 | 2015-06-10 | 腾讯科技(深圳)有限公司 | 一种消息发表的方法及装置 |
CN105491539A (zh) * | 2014-09-18 | 2016-04-13 | 博雅网络游戏开发(深圳)有限公司 | 消息推送管理方法和装置 |
CN106330947A (zh) * | 2016-09-06 | 2017-01-11 | 西安瀚炬网络科技有限公司 | 一种识别伪装WiFi的方法、***及***工作方法 |
CN106657299A (zh) * | 2016-12-08 | 2017-05-10 | 武汉斗鱼网络科技有限公司 | 关注主播上线提醒方法及*** |
CN106713124A (zh) * | 2017-01-24 | 2017-05-24 | 深圳市启仑智能科技有限公司 | 一种基于mqtt和mysql的消息推送方法和*** |
-
2018
- 2018-02-10 CN CN201810138045.3A patent/CN108449256B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104702486A (zh) * | 2013-12-09 | 2015-06-10 | 腾讯科技(深圳)有限公司 | 一种消息发表的方法及装置 |
CN105491539A (zh) * | 2014-09-18 | 2016-04-13 | 博雅网络游戏开发(深圳)有限公司 | 消息推送管理方法和装置 |
CN106330947A (zh) * | 2016-09-06 | 2017-01-11 | 西安瀚炬网络科技有限公司 | 一种识别伪装WiFi的方法、***及***工作方法 |
CN106657299A (zh) * | 2016-12-08 | 2017-05-10 | 武汉斗鱼网络科技有限公司 | 关注主播上线提醒方法及*** |
CN106713124A (zh) * | 2017-01-24 | 2017-05-24 | 深圳市启仑智能科技有限公司 | 一种基于mqtt和mysql的消息推送方法和*** |
Also Published As
Publication number | Publication date |
---|---|
CN108449256A (zh) | 2018-08-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108449256B (zh) | 消息推送的处理方法、装置、计算机设备及存储介质 | |
CN110351111B (zh) | 一种订阅处理方法、网络节点及用户数据库 | |
CN107204873B (zh) | 一种切换目标域名解析服务器的方法及相关设备 | |
JP7479450B2 (ja) | Natトラバーサル方法、装置及びシステム | |
CN108429739B (zh) | 一种识别蜜罐的方法、***及终端设备 | |
CN110233834B (zh) | 网络***、攻击报文的拦截方法、装置和设备 | |
EP3226516B1 (en) | Unified data networking across heterogeneous networks | |
CN113391979A (zh) | 监控数据展示的处理方法、设备、***及存储介质 | |
WO2018000389A1 (zh) | 管理网络切片的方法及其装置 | |
US8489838B2 (en) | Method and terminal device for erasing data of terminal | |
US20220329986A1 (en) | Multicast service implementation method and apparatus, and communications device | |
CN112566123A (zh) | 一种确定异常网络节点的方法及装置 | |
CN114126085B (zh) | 工业现场总线通信方法、装置、电子设备及存储介质 | |
CN109120578B (zh) | 一种实现链路连接处理的方法及装置 | |
CN107534847B (zh) | 一种发现方法及设备 | |
CN109688204B (zh) | 基于ndn网络的文件下载方法、节点、终端 | |
CN114828038A (zh) | 接入网*** | |
CN103138953A (zh) | 多媒体消息的群发方法及群发*** | |
CN115665042B (zh) | 数据处理方法、装置、用户平面功能实体及存储介质 | |
CN110943897A (zh) | PPPoE数据报文传输方法、装置、设备及存储介质 | |
CN111918365B (zh) | 一种物联网的配网方法、装置、***及存储介质 | |
CN115150031B (zh) | 基于分布式消息的分布式***消息响应方法及装置 | |
CN111107174B (zh) | 一种地址解析方法、装置、电子设备及存储介质 | |
US10944658B2 (en) | Method, apparatus and system for method for start-up of monitoring of monitor objects in a computer-integrated telecommunications environment | |
CN108173910B (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 |