消息处理方法、装置、非易失性存储介质及处理器与流程

文档序号:26050860发布日期:2021-07-27 15:25阅读:107来源:国知局
消息处理方法、装置、非易失性存储介质及处理器与流程

本发明涉及信息处理领域,具体而言,涉及一种消息处理方法、装置、非易失性存储介质及处理器。



背景技术:

在需要对海量的消息进行分发的场景中,消息分发任务的执行状态并不容易判断。例如,在自动化营销领域中,会出现需要给百万级的目标人群推送消息的场景,在这一过程中,难以掌握消息分发任务的执行状态。为了结束消息分发任务,相关技术通常设置固定的任务结束时间,让任务到了时间后自动结束。然而,上述方法无法保证任务已经执行完成,也无法确定任务的执行状态,容易出现消息分发任务的执行异常。

针对上述的问题,目前尚未提出有效的解决方案。



技术实现要素:

本发明实施例提供了一种消息处理方法、装置、非易失性存储介质及处理器,以至少解决难以确定消息分发任务的执行状态的技术问题。

根据本发明实施例的一个方面,提供了一种消息处理方法,包括:确定第一数量,其中,所述第一数量为第一队列中存储的待发送消息的数量;确定第二数量,其中,所述第二数量为第二队列中存储的触达反馈消息的数量,所述触达反馈消息为所述第一队列中的待发送消息触达目标对象后反馈的消息;根据所述第一数量以及所述第二数量,确定消息分发任务的执行状态。

可选地,根据所述第一数量以及所述第二数量,确定消息分发任务的执行状态,包括:在所述第一数量与所述第二数量相等的情况下,确定所述消息分发任务的执行状态为已完成;或者,在所述第一数量与所述第二数量不相等的情况下,确定所述消息分发任务的执行状态为未完成。

可选地,在确定第二数量之前,还包括:将所述第一队列中存储的第一消息发送至第一对象,其中,所述第一消息为所述第一队列中存储的所述待发送消息中的任意之一,所述第一对象为所述目标对象中与所述第一消息对应的对象。

可选地,确定第一数量,包括:在预定时间内,将所述待发送消息存入所述第一队列;获取所述预定时间内,所述第一队列中存储的所述待发送消息的数量,得到所述第一数量。

可选地,在确定第一数量之前,还包括:获取所述消息分发任务,其中,所述消息分发任务包括如下信息:目标对象,目标消息数量,消息文本;根据所述目标对象、所述目标消息数量以及所述消息文本,生成所述待发送消息。

可选地,上述方法还包括:将所述待发送消息存入所述第一队列;比较所述目标消息数量与所述第一数量的大小;在所述目标消息数量与所述第一数量相等的情况下,将所述第一队列中存储的消息发送给所述目标对象。

可选地,上述方法还包括:在所述目标消息数量与所述第一数量不相等的情况下,清空所述第一队列;根据所述目标对象、所述目标消息数量以及所述消息文本,重新生成所述待发送消息;将所述重新生成的待发送消息存入所述第一队列;确定第三数量,其中,所述第三数量为所述第一队列中存储的所述重新生成的待发送消息的数量;比较所述目标消息数量与所述第三数量的大小;在所述目标消息数量与所述第三数量相等的情况下,将所述第一队列中存储的消息发送给所述目标对象。

根据本发明实施例的另一方面,还提供了一种消息处理装置,包括:第一确定模块,用于确定第一数量,其中,所述第一数量为第一队列中存储的待发送消息的数量;第二确定模块,用于确定第二数量,其中,所述第二数量为第二队列中存储的触达反馈消息的数量,所述触达反馈消息为所述第一队列中的待发送消息触达目标对象后反馈的消息;第三确定模块,用于根据所述第一数量以及所述第二数量,确定消息分发任务的执行状态。

根据本发明实施例的又一方面,还提供了一种非易失性存储介质,所述非易失性存储介质包括存储的程序,其中,在所述程序运行时控制所述非易失性存储介质所在设备执行上述任意一项所述消息处理方法。

根据本发明实施例的再一方面,还提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行上述任意一项所述消息处理方法。

在本发明实施例中,采用将消息存入队列的方式,通过确定第一队列中存储的待发送消息的第一数量,确定第二队列中存储的触达反馈消息的第二数量,其中触达反馈消息为第一队列中的待发送消息触达目标对象后反馈的消息,达到了根据第一数量以及第二数量,确定消息分发任务的执行状态的目的,从而实现了方便容易地确定消息分发任务的执行状态的技术效果,进而解决了难以确定消息分发任务的执行状态技术问题。

附图说明

此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:

图1是根据本发明实施例提供的消息处理方法的流程示意图;

图2是根据本发明实施例提供的消息处理装置的结构框图。

具体实施方式

为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。

需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

实施例1

根据本发明实施例,提供了一种消息处理方法的实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

图1是根据本发明实施例提供的消息处理方法的流程示意图,如图1所示,该方法包括如下步骤:

步骤s102,确定第一数量,其中,第一数量为第一队列中存储的待发送消息的数量。本步骤中,第一队列为用于存储待发送消息的队列。可选地,待发送消息可以依次存储在第一队列中,每往第一队列中存储一个待发送消息,就累计一个计数,直到达到将待发送消息存入第一队列这一过程的停止条件,此时累计得到的计数为第一数量,即第一数量可以用于表示第一队列中存储的待发送消息的数量。

步骤s104,确定第二数量,其中,第二数量为第二队列中存储的触达反馈消息的数量,触达反馈消息为第一队列中的待发送消息触达目标对象后反馈的消息。本步骤中,第二队列为用于存储触达反馈消息的队列。触达反馈消息用于反馈目标对象已经接收到了待发送消息,即该待发送消息触达了目标对象。可选地,触达反馈消息可以依次存储在第二队列中,每往第二队列中存储一个触达反馈消息,就累计一个计数,直到达到累计计数的停止条件,此时累计得到的技术为第二数量,即第二数量可以用于表示第二队列中存储的触达反馈消息的数量。

步骤s106,根据第一数量以及第二数量,确定消息分发任务的执行状态。可选地,消息分发任务的执行状态可以包括任务是否已经执行完成。

通过上述步骤,采用将消息存入队列的方式,通过确定第一队列中存储的待发送消息的第一数量,确定第二队列中存储的触达反馈消息的第二数量,其中触达反馈消息为第一队列中的待发送消息触达目标对象后反馈的消息,达到了根据第一数量以及第二数量,确定消息分发任务的执行状态的目的,从而实现了方便容易地确定消息分发任务的执行状态的技术效果,进而解决了难以确定消息分发任务的执行状态技术问题。

作为一种可选的实施例,在确定第一数量之前,可以获取消息分发任务,然后根据消息分发任务中包括的目标对象、目标消息数量以及消息文本等信息,生成待发送消息。可选地,消息分发任务可以为自动化营销任务,例如将短信消息或者订阅内容推送给订阅人群的任务。目标对象可以为订阅人群,将消息推送给订阅人群即将订阅内容发送到订阅人群的设备中。目标消息数量可以与目标对象的人数相同,也可以不同,例如,可以为向每一个目标对象发送一条消息,此时目标消息数量与目标对象的数量相同;还可以根据营销策略,向每一个目标对象发送一条或者多条消息,此时目标消息数量与目标对象的数量不同。此外,每一个生成的待发送消息可以与一个目标对象对应,对应关系也记录在待发送消息中。

由于在特定场景中,目标对象的数量可能非常巨大,能够达到百万甚至千万的数量级,因此,采用同步的方法获取目标对象可能会存在多种问题。本可选的实施例中,可以采用异步的方式逐个获取目标对象,并根据目标对象和消息文本,逐个生成待发送消息。通过上述方式,可以实现异步获取待发送的目标消息的数量。

作为一种可选的实施例,生成待发送消息之后,可以将待发送消息存入第一队列;比较目标消息数量与第一数量的大小;在目标消息数量与第一数量相等的情况下,将第一队列中存储的消息发送给目标对象。

可选地,第一队列为消息队列,可以用于处理大量的信息,通过使用消息队列,可以在处理消息的过程中实现削峰限流,同时还可以将处理消息的不同的系统之间进行解耦,减少不同消息处理系统之间的强依赖性。此外,还可以采用异步的方式,从第一队列中获取待发送消息的状态,例如,由于目标对象与待发送消息的数量可能非常庞大,因此在生成待发送消息以及将待发送消息存入第一队列的过程中可能产生错误,导致没有第一队列中存储的消息有误,或者目标对象有100万个,但是由于错漏仅在第一队列中存储了70万条消息。通过确定第一队列中存储的消息的第一数量,并将第一数量与目标消息数量进行比较,可以实现对第一队列中存储的消息的状态监控,当第一数量达到目标消息数量的情况下,判断已将所有的待发送消息均存入了第一队列,进一步地可以将第一队列中的待发送消息发送给对应的目标对象;否则,则可以判断这一过程发生了错误。

另外,在目标消息数量与第一数量相等的情况下,可以认为获取目标对象的过程已顺利实现,此时可以将目标消息数量或者第一数量存储到存储介质或者缓存中,例如,可以将上述数量持久化到redis(remotedictionaryserver存储平台,简称redis)中,供后续使用。

作为一种可选的实施例,还可以在目标消息数量与第一数量不相等的情况下,清空第一队列;根据目标对象、目标消息数量以及消息文本,重新生成待发送消息;将重新生成的待发送消息存入第一队列;确定第三数量,其中,第三数量为第一队列中存储的重新生成的待发送消息的数量;比较目标消息数量与第三数量的大小;在目标消息数量与第三数量相等的情况下,将第一队列中存储的消息发送给目标对象。

可选地,当获取目标对象并根据目标对象生成待发送信息的这一过程中发生异常事件,导致第一队列中存储的消息的第一数量与目标消息数量不相等的情况下,可以将第一队列清空,重新获取目标对象,并根据重新获取的目标对象生成待发送信息,再将重新生成的待发送信息存入第一队列中,统计第一队列中存储的消息数量,记为第三数量。重复上述过程,直到第一队列中存储的消息的数量与目标消息数量相等,则认为成功将所有待发送消息存入了第一队列,进而进行下一步的消息发送步骤。

需要说明的是,当发送给目标对象的消息数量为第三数量时,后续判断消息分发任务的执行状态的判断条件也变为了比较第三数量与第二数量的大小,当第三数量与第二数量相等的情况下,判断消息分发任务已执行完毕。

作为一种可选的实施例,可以采用如下方式确定第一数量:在预定时间内,将待发送消息存入第一队列;获取预定时间内,第一队列中存储的待发送消息的数量,得到第一数量。本实施例中,可以通过预定时间的方式,确定统计第一队列中的消息数量的节点时间。

作为一种可选的实施例,在确定第二数量之前,还可以将第一队列中存储的第一消息发送至第一对象,其中,第一消息为第一队列中存储的待发送消息中的任意之一,第一对象为目标对象中与第一消息对应的对象。可选地,每一条待发送消息均可以对应唯一一个对象,即一条消息只发送给一个消息订阅用户。

作为一种可选的实施例,根据第一数量以及第二数量,确定消息分发任务的执行状态,包括:在第一数量与第二数量相等的情况下,确定消息分发任务的执行状态为已完成;或者,在第一数量与第二数量不相等的情况下,确定消息分发任务的执行状态为未完成。

将消息发送出去后,通常难以确定目标对象是否接收到了消息,即难以判断订阅消息是否触达了用户。作为一种可选的实施方式,可以采用异步获取触达反馈消息的方式,确定之前发送的消息是否触达了用户,以及触达了用户的消息的数量。由于发送的消息的数量级非常大,因此采用同步获取触达反馈消息的方式极易出现异常状况,对触达反馈消息的数量统计非常困难。此外,消息分发平台或者即时通讯软件也可能并不支持如此大规模的消息并发反馈,或者不支持反馈触达的精确信息。因此,采用异步获取触达反馈消息的方式,通过从第三方处依次获得触达反馈消息,并将触达反馈消息存入第二队列中,可以规避上述问题。

当第二数量与第一数量相等的情况下,由于第一数量与目标消息数量相等,因此可以确定根据目标对象确定的目标消息数量、第一队列中存储的待发送消息的数量以及触达了目标对象的消息的数量三者一致,证明了每一个目标对象均接收到了原定消息分发任务中计划发送给他们的消息,因此证明了当前的消息分发任务已得到圆满地执行,并可以将该任务的执行状态修改为已完成,结束该任务的进程。

通过采用上述可选的实施例执行消息分发任务,可以提高任务的数据处理效率以及数据处理精确度,降低处理以及得到反馈的耗时,同时适配更多的场景,兼容度更高。对于自动化营销场景而言,可以使前端用户感知到秒级甚至更快的响应,帮助营销用户快速、自动地确定消息分发任务的执行状态。

实施例2

根据本发明实施例,还提供了一种用于实施上述消息处理方法的消息处理装置,图2是根据本发明实施例提供的消息处理装置的结构框图,如图2所示,该消息处理装置包括:第一确定模块22,第二确定模块24和第三确定模块26,下面对该消息处理装置进行说明。

第一确定模块22,用于确定第一数量,其中,第一数量为第一队列中存储的待发送消息的数量;

第二确定模块24,连接于上述第一确定模块22,用于确定第二数量,其中,第二数量为第二队列中存储的触达反馈消息的数量,触达反馈消息为第一队列中的待发送消息触达目标对象后反馈的消息;

第三确定模块26,连接于上述第二确定模块24,用于根据第一数量以及第二数量,确定消息分发任务的执行状态。

此处需要说明的是,第一确定模块22,第二确定模块24和第三确定模块26对应于实施例1中的步骤s102至步骤s106,多个模块与对应的步骤所实现的实例和应用场景相同,但不限于上述实施例1所公开的内容。

实施例3

本发明的实施例可以提供一种计算机设备,可选地,在本实施例中,上述计算机设备可以位于计算机网络的多个网络设备中的至少一个网络设备。该计算机设备包括存储器和处理器。

其中,存储器可用于存储软件程序以及模块,如本发明实施例中的消息处理方法和装置对应的程序指令/模块,处理器通过运行存储在存储器内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的消息处理方法。存储器可包括高速随机存储器,还可以包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器可进一步包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至计算机终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

处理器可以通过传输装置调用存储器存储的信息及应用程序,以执行下述步骤:确定第一数量,其中,第一数量为第一队列中存储的待发送消息的数量;确定第二数量,其中,第二数量为第二队列中存储的触达反馈消息的数量,触达反馈消息为第一队列中的待发送消息触达目标对象后反馈的消息;根据第一数量以及第二数量,确定消息分发任务的执行状态。

可选的,上述处理器还可以执行如下步骤的程序代码:根据第一数量以及第二数量,确定消息分发任务的执行状态,包括:在第一数量与第二数量相等的情况下,确定消息分发任务的执行状态为已完成;或者,在第一数量与第二数量不相等的情况下,确定消息分发任务的执行状态为未完成。

可选的,上述处理器还可以执行如下步骤的程序代码:在确定第二数量之前,还包括:将第一队列中存储的第一消息发送至第一对象,其中,第一消息为第一队列中存储的待发送消息中的任意之一,第一对象为目标对象中与第一消息对应的对象。

可选的,上述处理器还可以执行如下步骤的程序代码:确定第一数量,包括:在预定时间内,将待发送消息存入第一队列;获取预定时间内,第一队列中存储的待发送消息的数量,得到第一数量。

可选的,上述处理器还可以执行如下步骤的程序代码:在确定第一数量之前,还包括:获取消息分发任务,其中,消息分发任务包括如下信息:目标对象,目标消息数量,消息文本;根据目标对象、目标消息数量以及消息文本,生成待发送消息。

可选的,上述处理器还可以执行如下步骤的程序代码:将待发送消息存入第一队列;比较目标消息数量与第一数量的大小;在目标消息数量与第一数量相等的情况下,将第一队列中存储的消息发送给目标对象。

可选的,上述处理器还可以执行如下步骤的程序代码:在目标消息数量与第一数量不相等的情况下,清空第一队列;根据目标对象、目标消息数量以及消息文本,重新生成待发送消息;将重新生成的待发送消息存入第一队列;确定第三数量,其中,第三数量为第一队列中存储的重新生成的待发送消息的数量;比较目标消息数量与第三数量的大小;在目标消息数量与第三数量相等的情况下,将第一队列中存储的消息发送给目标对象。

本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(read-onlymemory,rom)、随机存取器(randomaccessmemory,ram)、磁盘或光盘等。

实施例4

本发明的实施例还提供了一种非易失性存储介质。可选地,在本实施例中,上述非易失性存储介质可以用于保存上述实施例1所提供的消息处理方法所执行的程序代码。

可选地,在本实施例中,上述非易失性存储介质可以位于计算机网络中计算机终端群中的任意一个计算机终端中,或者位于移动终端群中的任意一个移动终端中。

可选地,在本实施例中,非易失性存储介质被设置为存储用于执行以下步骤的程序代码:确定第一数量,其中,第一数量为第一队列中存储的待发送消息的数量;确定第二数量,其中,第二数量为第二队列中存储的触达反馈消息的数量,触达反馈消息为第一队列中的待发送消息触达目标对象后反馈的消息;根据第一数量以及第二数量,确定消息分发任务的执行状态。

可选地,在本实施例中,非易失性存储介质被设置为存储用于执行以下步骤的程序代码:根据第一数量以及第二数量,确定消息分发任务的执行状态,包括:在第一数量与第二数量相等的情况下,确定消息分发任务的执行状态为已完成;或者,在第一数量与第二数量不相等的情况下,确定消息分发任务的执行状态为未完成。

可选地,在本实施例中,非易失性存储介质被设置为存储用于执行以下步骤的程序代码:在确定第二数量之前,还包括:将第一队列中存储的第一消息发送至第一对象,其中,第一消息为第一队列中存储的待发送消息中的任意之一,第一对象为目标对象中与第一消息对应的对象。

可选地,在本实施例中,非易失性存储介质被设置为存储用于执行以下步骤的程序代码:确定第一数量,包括:在预定时间内,将待发送消息存入第一队列;获取预定时间内,第一队列中存储的待发送消息的数量,得到第一数量。

可选地,在本实施例中,非易失性存储介质被设置为存储用于执行以下步骤的程序代码:在确定第一数量之前,还包括:获取消息分发任务,其中,消息分发任务包括如下信息:目标对象,目标消息数量,消息文本;根据目标对象、目标消息数量以及消息文本,生成待发送消息。

可选地,在本实施例中,非易失性存储介质被设置为存储用于执行以下步骤的程序代码:将待发送消息存入第一队列;比较目标消息数量与第一数量的大小;在目标消息数量与第一数量相等的情况下,将第一队列中存储的消息发送给目标对象。

可选地,在本实施例中,非易失性存储介质被设置为存储用于执行以下步骤的程序代码:在目标消息数量与第一数量不相等的情况下,清空第一队列;根据目标对象、目标消息数量以及消息文本,重新生成待发送消息;将重新生成的待发送消息存入第一队列;确定第三数量,其中,第三数量为第一队列中存储的重新生成的待发送消息的数量;比较目标消息数量与第三数量的大小;在目标消息数量与第三数量相等的情况下,将第一队列中存储的消息发送给目标对象。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。

在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

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