一种信息推送方法、装置、终端设备及存储介质转让专利

申请号 : CN202110852691.8

文献号 : CN113556352B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 夏正冬

申请人 : 北京字跳网络技术有限公司

摘要 :

本公开公开了一种信息推送方法、装置、终端设备及存储介质。所述方法包括:获取已推送标识信息和信息集,所述信息集中存储有待推送信息和所述待推送信息对应的推送标识信息;根据所述已推送标识信息和所述推送标识信息从所述信息集中查找对应所述已推送标识信息的待推送信息;在未查找到对应所述已推送标识信息的待推送信息时,从服务器拉取信息;在所拉取信息满足设定的拉取条件时,返回执行获取已推送标识信息和信息集的步骤直至查找到将要推送的待推送信息;传输所述将要推送的待推送信息。利用该方法,能够通过主动拉取的方式及时获知通信异常情况的发生,提高了会议质量。

权利要求 :

1.一种信息推送方法,其特征在于,应用于客户端,所述方法包括:获取已推送标识信息和信息集,所述信息集中存储有待推送信息和所述待推送信息对应的推送标识信息;

根据所述已推送标识信息和所述推送标识信息从所述信息集中查找对应所述已推送标识信息的待推送信息;

在未查找到对应所述已推送标识信息的待推送信息时,从服务器拉取信息;

在所拉取信息满足设定的拉取条件时,返回执行获取已推送标识信息和信息集的步骤直至查找到将要推送的待推送信息;

传输所述将要推送的待推送信息;

在查找到对应所述已推送标识信息的待推送信息时,推送查找到的待推送信息至业务层,并返回继续执行获取已推送标识信息和信息集的步骤;

所述拉取条件包括如下之一:

所拉取信息表征拉取失败,且所述信息集为空,且未收到推送通知的时长达到第一设定时长;

所拉取信息表征拉取成功,且所拉取信息表征未拉取到信息,且所述信息集为空,且未收到推送通知的时长达到第二设定时长。

2.根据权利要求1所述的方法,其特征在于,还包括:在所拉取信息表征拉取失败,且所述信息集不为空时,根据所述信息集中的推送标识信息更新所述已推送标识信息后继续查找所述信息集;

在所拉取信息表征拉取成功,且所述拉取信息表征拉取到信息时,根据所拉取信息更新所述信息集,并返回执行获取已推送标识信息和信息集的步骤直至查找到将要推送的待推送信息;

在所拉取信息表征拉取成功,且所拉取信息表征未拉取到信息,且所述信息集不空时,更新所述已推送标识信息后继续查找所述信息集。

3.根据权利要求2所述的方法,其特征在于,更新所述已推送标识信息,包括:在所述已推送标识信息不为空时,将所述信息集中数值大于已推送标识信息所表征数值的推送标识信息中所表征数值最小的推送标识信息确定为更新后的已推送标识信息;

在所述已推送标识信息为空时,将所述信息集所包括推送标识信息中所表征数值最小的推送标识信息确定为更新后的已推送标识信息;

其中,所述信息集中的推送标识信息表征上一个待推送信息的标识信息,所述标识信息包括顺序号。

4.根据权利要求1所述的方法,其特征在于,所述信息集通过如下步骤形成:获取待推送信息;

在满足保序条件时,将所述待推送信息和所述待推送信息对应的推送标识信息存储至信息集中。

5.根据权利要求4所述的方法,其特征在于,所述保序条件包括:当前开启推送保序功能,且服务器状态正常且所述待推送信息需要保序;

其中,所述待推送信息是否需要保序基于所述待推送信息的属性确定。

6.根据权利要求1所述的方法,其特征在于,获取已推送标识信息,包括:在获取到的已推送标识信息为空时,将所述信息集所包括推送标识信息中所表征数值最小的推送标识信息确定为已推送标识信息。

7.一种信息推送装置,其特征在于,应用于客户端,所述装置包括:获取模块,用于获取已推送标识信息和信息集,所述信息集中存储有待推送信息和所述待推送信息对应的推送标识信息;

查找模块,用于根据所述已推送标识信息和所述推送标识信息从所述信息集中查找对应所述已推送标识信息的待推送信息;

拉取模块,用于在未查找到对应所述已推送标识信息的待推送信息时,从服务器拉取信息;

判断模块,用于在所拉取信息满足设定的拉取条件时,返回执行获取已推送标识信息和信息集的步骤直至查找到将要推送的待推送信息,所述拉取条件包括如下之一:所拉取信息表征拉取失败,且所述信息集为空,且未收到推送通知的时长达到第一设定时长;所拉取信息表征拉取成功,且所拉取信息表征未拉取到信息,且所述信息集为空,且未收到推送通知的时长达到第二设定时长;

传输模块,用于传输所述将要推送的待推送信息;

推送模块,用于在查找到对应所述已推送标识信息的待推送信息时,推送查找到的待推送信息至业务层,并返回继续执行获取已推送标识信息和信息集的步骤。

8.一种终端设备,其特征在于,包括:

一个或多个处理装置;

存储装置,用于存储一个或多个程序;

当所述一个或多个程序被所述一个或多个处理装置执行,使得所述一个或多个处理装置实现如权利要求1‑6中任一所述的信息推送方法。

9.一种计算机可读介质,其上存储有计算机程序,其特征在于,该程序被处理装置执行时实现如权利要求1‑6中任一所述的信息推送方法。

说明书 :

一种信息推送方法、装置、终端设备及存储介质

技术领域

[0001] 本公开实施例涉及计算机技术领域,尤其涉及一种信息推送方法、装置、终端设备及存储介质。

背景技术

[0002] 音视频会议,是提供音频和视频服务的远程会议,如,视频会议,是指位于两个或多个地点的人们通过通信设备和网络,进行面对面交谈的会议。根据参会地点数目不同,视频会议可分为点对点会议和多点会议。日常生活中的个人对谈话内容安全性、会议质量、会议规模没有要求,然而,采用音视频软件来进行音视频聊天需要有可靠的会议质量。
[0003] 音视频会议的会议质量由多种因素决定,如音视频双方信息推送的连续性。然而,在通信存在异常的情况下,音视频双方推送的信息可能存在丢失的现象。目前,若推送信息丢失,则只有等到下一推送的信息收到后才能感知丢失,从而影响了会议质量。

发明内容

[0004] 本公开实施例提供了一种信息推送方法、装置、终端设备及存储介质,能够及时获知通信异常情况的发生,提高了会议质量。
[0005] 第一方面,本公开实施例提供了一种信息推送方法,包括:
[0006] 获取已推送标识信息和信息集,所述信息集中存储有待推送信息和所述待推送信息对应的推送标识信息;
[0007] 根据所述已推送标识信息和所述推送标识信息从所述信息集中查找对应所述已推送标识信息的待推送信息;
[0008] 在未查找到对应所述已推送标识信息的待推送信息时,从服务器拉取信息;
[0009] 在所拉取信息满足设定的拉取条件时,返回执行获取已推送标识信息和信息集的步骤直至查找到将要推送的待推送信息;
[0010] 传输所述将要推送的待推送信息。
[0011] 第二方面,本公开实施例还提供了一种信息推送装置,包括:
[0012] 获取模块,用于获取已推送标识信息和信息集,所述信息集中存储有待推送信息和所述待推送信息对应的推送标识信息;
[0013] 查找模块,用于根据所述已推送标识信息和所述推送标识信息从所述信息集中查找对应所述已推送标识信息的待推送信息;
[0014] 拉取模块,用于在未查找到对应所述已推送标识信息的待推送信息时,从服务器拉取信息;
[0015] 判断模块,用于在所拉取信息满足设定的拉取条件时,返回执行获取已推送标识信息和信息集的步骤直至查找到将要推送的待推送信息;
[0016] 传输模块,用于传输所述将要推送的待推送信息。
[0017] 第三方面,本公开实施例还提供了一种终端设备,包括:
[0018] 一个或多个处理装置;
[0019] 存储装置,用于存储一个或多个程序;
[0020] 所述一个或多个程序被所述一个或多个处理装置执行,使得所述一个或多个处理装置实现本公开实施例提供的信息推送方法。
[0021] 第四方面,本公开实施例还提供了一种计算机可读介质,其上存储有计算机程序,该程序被处理装置执行时实现本公开实施例提供的信息推送方法。
[0022] 本公开实施例提供了一种信息推送方法、装置、终端设备及存储介质,首先获取已推送标识信息和信息集,所述信息集中存储有待推送信息和所述待推送信息对应的推送标识信息;其次根据所述已推送标识信息和所述推送标识信息从所述信息集中查找对应所述已推送标识信息的待推送信息;然后在未查找到对应所述已推送标识信息的待推送信息时,从服务器拉取信息;之后在所拉取信息满足设定的拉取条件时,返回执行获取已推送标识信息和信息集的步骤直至查找到将要推送的待推送信息;最后传输所述将要推送的待推送信息。利用上述技术方案,能够通过主动拉取的方式及时获知通信异常情况的发生,提高了会议质量。

附图说明

[0023] 结合附图并参考以下具体实施方式,本公开各实施例的上述和其他特征、优点及方面将变得更加明显。贯穿附图中,相同或相似的附图标记表示相同或相似的元素。应当理解附图是示意性的,原件和元素不一定按照比例绘制。
[0024] 图1为本公开实施例一提供的一种信息推送方法的流程示意图;
[0025] 图2为本公开实施例二提供的一种信息推送方法的流程示意图;
[0026] 图2a为本公开实施例提供的一种推送保序流程示意图;
[0027] 图2b为本公开实施例提供的一种消费线程的流程示意图;
[0028] 图3为本公开实施例三提供的一种信息推送装置的结构示意图;
[0029] 图4为本公开实施例四提供的一种终端设备的结构示意图。

具体实施方式

[0030] 下面将参照附图更详细地描述本公开的实施例。虽然附图中显示了本公开的某些实施例,然而应当理解的是,本公开可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本公开。应当理解的是,本公开的附图及实施例仅用于示例性作用,并非用于限制本公开的保护范围。
[0031] 应当理解,本公开的方法实施方式中记载的各个步骤可以按照不同的顺序执行,和/或并行执行。此外,方法实施方式可以包括附加的步骤和/或省略执行示出的步骤。本公开的范围在此方面不受限制。
[0032] 本文使用的术语“包括”及其变形是开放性包括,即“包括但不限于”。术语“基于”是“至少部分地基于”。术语“一个实施例”表示“至少一个实施例”;术语“另一实施例”表示“至少一个另外的实施例”;术语“一些实施例”表示“至少一些实施例”。其他术语的相关定义将在下文描述中给出。
[0033] 需要注意,本公开中提及的“第一”、“第二”等概念仅用于对不同的装置、模块或单元进行区分,并非用于限定这些装置、模块或单元所执行的功能的顺序或者相互依存关系。
[0034] 需要注意,本公开中提及的“一个”、“多个”的修饰是示意性而非限制性的,本领域技术人员应当理解,除非在上下文另有明确指出,否则应该理解为“一个或多个”。
[0035] 本公开实施方式中的多个装置之间所交互的消息或者信息的名称仅用于说明性的目的,而并不是用于对这些消息或信息的范围进行限制。
[0036] 下述各实施例中,每个实施例中同时提供了可选特征和示例,实施例中记载的各个特征可进行组合,形成多个可选方案,不应将每个编号的实施例仅视为一个技术方案。此外,在不冲突的情况下,本公开中的实施例及实施例中的特征可以相互组合。
[0037] 实施例一
[0038] 图1为本公开实施例一提供的一种信息推送方法的流程示意图,该方法可适用于客户端进行信息推送的情况,该方法可以由信息推送装置来执行,其中该装置可由软件和/或硬件实现,并一般集成在终端设备上,在本实施例中终端设备包括但不限于:电脑、手机和个人数字助理等设备。本公开中的终端设备可以认为是客户端,终端设备可以接收服务端传输的待推送信息,然后推送至终端设备的上层,即业务层,从而实现信息推送。
[0039] 如图1所示,本公开实施例一提供的一种信息推送,包括如下步骤:
[0040] S110、获取已推送标识信息和信息集,所述信息集中存储有待推送信息和所述待推送信息对应的推送标识信息。
[0041] 在本实施例中,已推送标识信息可以理解为当前已经推送至上层(例如,终端设备中的业务层)的信息的标识信息。信息集可以理解为终端设备从服务端接收到的将要推送至上层的信息的集合。待推送信息可以认为是等待推送至上层的信息。推送标识信息可以理解为用于确定哪一待推送信息将要被推送至上层的标识信息。推送标识信息可以为该推送标识信息所对应待推送信息的标识信息;也可以为该推送标识信息所对应待推送信息的前一个待推送信息的标识信息。
[0042] 在一个实施例中,信息集中包括三个待推送信息,第一个待推送信息对应的推送标识信息可以表征该待推送信息为第1个待推送信息,第二个待推送信息对应的推送标识信息可以表征该待推送信息为第2个待推送信息,第三个待推送信息对应的推送标识信息可以表征该待推送信息为第3个待推送信息。如将待推送信息的顺序号作为其标识信息。
[0043] 在一个实施例中,信息集中包括三个待推送信息,第一个待推送信息对应的推送标识信息可以表征该待推送信息的上一个待推送信息的顺序号,如第一个待推送信息的顺序号为2,则该第一个待推送信息对应的推送标识信息为1。
[0044] 本公开在进行信息推送时,基于已推送标识信息和信息集完成信息推送。首先,本公开可以根据从服务端读取的待推送信息形成信息集,以得到信息集。本步骤可以获取本端存储的信息集和信息推送过程中的已推送标识信息。
[0045] 在本实施例中,已推送标识信息可以为空,本步骤可以将信息集中推送标识信息最小的推送标识信息作为已推送标识信息,以获取到已推送标识信息。在当前存在推送成功的信息时,可以基于最后推送成功的信息的推送标识信息确定已推送标识信息,以获取已推送标识信息。
[0046] 在本实施例中,推送标识信息和已推送标识信息可以为顺序号。
[0047] S120、根据所述已推送标识信息和所述推送标识信息从所述信息集中查找对应所述已推送标识信息的待推送信息。
[0048] 在获取已推送标识信息和信息集后,本步骤可以查找信息集以确定已推送标识信息对应的待推送信息,即从信息集中查找对应所述已推送标识信息的待推送信息。在本实施例中,具体查找手段基于推送标识信息的具体设置确定,此处不作限定。
[0049] 推送标识信息和待推送信息是一一对应的关系,推送标识信息可以为上一个待推送信息的标识信息,也可以为所对应待推送信息的标识信息。
[0050] 在一个示例中,若推送标识信息为上一个待推送信息的标识信息时,则本步骤可以从信息集中查找与已推送标识信息相同的推送标识信息作为对应所述已推送标识信息的待推送信息,示例性的,信息集中存在两个待推送信息,分别为待推送信息A(对应的标识信息为M)和待推送信息B,待推送信息B的推送标识信息M可以为待推送信息A的标识信息,若已推送标识信息为M,则表征标识信息M所对应的待推送信息A已经被推送,需要推送下一个待推送信息,则在查找信息集时,为了查找到待推送信息A的下一个待推送信息B,则从信息集中查找推送标识信息为M的推送标识信息,以进一步获取待推送信息B。其中,待推送信息A的推送标识信息的设定方式不作限定。
[0051] 在一个示例中,若推送标识信息为对应待推送信息的标识信息时,则本步骤可以从信息集中查找大于已推送标识信息的最小推送标识信息作为对应所述已推送标识信息的待推送信息。示例性的,信息集中存在两个待推送信息,分别为待推送信息A和待推送信息B,待推送信息A、待推送信息B和待推送信息C的推送标识信息可以分别为i,j和k,待推送信息可以基于存入信息集的时间顺序递增的设置推送标识信息,若待推送信息A、待推送信息B和待推送信息C依次存入信息集,则i,j和k的数值依次增大。在已推送标识信息为i时,表征推送标识信息为i所对应的待推送信息A已经被推送,需要推送待推送信息A后的下一个待推送信息,则从信息集中获取大于i的最小的推送标识信息j,然后获取推送标识信息j所对应的待推送信息B。
[0052] 在查找到对应所述已推送标识信息的待推送信息时,本实施例可以推送查找到的待推送信息至上层。
[0053] S130、在未查找到对应所述已推送标识信息的待推送信息时,从服务器拉取信息。
[0054] 在没有查找到对应所述已推送标识信息的待推送信息时,本步骤可以通过拉取接口从服务区拉取信息。拉取的信息可以为所述已推送标识信息后的所有待推送信息,此处不作限定。其中,没有查找到对应所述已推送标识信息的待推送信息的场景不作限定。
[0055] 在一个示例中,对应已推送标识信息的待推送信息丢失可以导致在查找信息集时,没有查找到对应所述已推送标识信息的待推送信息。如,信息集中待推送信息为待推送信息A(对应的标识信息为1)、待推送信息B(对应推送标识信息为1,对应的标识信息为2)和待推送信息D(对应推送标识信息为3,对应的标识信息为4),待推送信息C(对应推送标识信息为2,对应的标识信息为3)丢失,当前已经将待推送信息A和待推送信息B推送至上层,已推送标识信息为2,表征标识信息为3的待推送信息B已经被推送上层,在基于已推送标识信息2进行信息集查找时,查找推送标识信息为2所对应的待推送信息C,但是信息集中待推送信息C丢失故查找不到对应已推送标识信息的待推送信息。
[0056] 在一个实施例中,服务器传输给终端设备的待推送信息均由终端设备推送至上层后,也可能查找不到对应所述已推送标识信息的待推送信息,如服务器推送给终端设备的待推送信息为待推送信息A(对应的标识信息为1)和待推送信息B(对应推送标识信息为1,对应的标识信息为2),其中待推送信息B已经被推送给上层,已推送标识信息为2,则在查找信息集时需要查找推送标识信息为2的待推送信息,但是信息集中目前并不存在推送标识信息,故查找不到对应所述已推送标识信息的待推送信息。
[0057] 在本实施例中,对应已推送标识信息的待推送信息可以认为基于已推送标识信息所查找的待推送信息。
[0058] S140、在所拉取信息满足设定的拉取条件时,返回执行获取已推送标识信息和信息集的步骤直至查找到将要推送的待推送信息。
[0059] 拉取条件可以认为是触发再次拉取信息的条件。将要推送的待推送信息可以为已推送标识信息对应的待推送信息,也可以为已推送标识信息所对应待推送信息的下一个待推送信息。
[0060] 拉取条件的具体内容不作限定可以基于拉取信息所表征的具体内容确定。如所拉取信息表征没有拉取到数据,且信息集为空,则为了避免数据包不连续,本步骤可以继续触发执行获取操作,即返回获取信息集和已推送标识信息的步骤,此时获取的信息集可以为更新后的信息集,获取的已推送标识信息也可以为更新后的已推送标识信息,进而继续拉取信息,从而实现即使最新的信息丢失,且下一个信息(即待推送信息)没有读取时,也能够触发拉取,以拉取到最新的推送。
[0061] 在所拉取信息拉取到信息,或者所拉取信息表征信息集不为空,或者在接收到推送通知时,可以成功从信息集中读取到将要推送的待推送信息。推送通知可以认为是触发终端设备进行信息推送的通知。推送通知可以在读取到服务端推送的新的待推送信息并存储至信息集后触发。
[0062] S150、传输所述将要推送的待推送信息。
[0063] 在查找到将要推送的待推送信息后,本步骤可以向上层推送该待推送信息。
[0064] 推送完将要推送的待推送信息后,本实施例可以从信息集中将该将要推送的待推送信息和对应的推送标识信息删除。
[0065] 本公开实施例一提供的一种信息推送方法,首先获取已推送标识信息和信息集,所述信息集中存储有待推送信息和所述待推送信息对应的推送标识信息;其次根据所述已推送标识信息和所述推送标识信息从所述信息集中查找对应所述已推送标识信息的待推送信息;然后在未查找到对应所述已推送标识信息的待推送信息时,从服务器拉取信息;之后在所拉取信息满足设定的拉取条件时,返回执行获取已推送标识信息和信息集的步骤直至查找到将要推送的待推送信息;最后传输所述将要推送的待推送信息。利用上述技术方案,能够通过主动拉取的方式及时获知通信异常情况的发生,提高了会议质量。
[0066] 在上述实施例的基础上,提出了上述实施例的变型实施例,在此需要说明的是,为了使描述简要,在变型实施例中仅描述与上述实施例的不同之处。
[0067] 在一个实施例中,所述拉取条件包括如下之一:
[0068] 所拉取信息表征拉取失败,且所述信息集为空,且未收到推送通知的时长达到第一设定时长;
[0069] 所拉取信息表征拉取成功,且所拉取信息表征未拉取到信息,且所述信息集为空,且未收到推送通知的时长达到第二设定时长。
[0070] 第一设定时长和第二设定时长的具体数值不作限定,可以根据实际业务场景确地,如5s。
[0071] 其中,所拉取信息表征拉取失败,且所述信息集为空,且未收到推送通知的时长达到第一设定时长表征服务器异常,且信息集中待推送信息(如待推送信息A和待推送信息B)目前均已推送至上层(即目前没有待推送信息能推送至上层),且没有收到推送通知(即服务器没有发送新的待推送信息)的时长达到了第一设定时长,则会触发返回获取已推送标识信息和信息集的步骤,以触发从服务器拉取信息的操作,从而确保向上层推送待推送信息的连续性。
[0072] 其中,所拉取信息表征拉取成功,且所拉取信息表征未拉取到信息,且所述信息集为空表征,当前信息集中待推送信息均已经被推送至上层,且从服务器中拉取成功,但服务器中目前没有需要被推送的待推送信息的场景。在该场景下,若未收到推送通知的时长达到第二设定时长则会触发返回获取已推送标识信息和信息集的步骤,以触发从服务器拉取信息的操作,从而确保向上层推送待推送信息的连续性。
[0073] 示例性的,信息集中包括待推送信息A(对应的标识信息为1)和待推送信息B(对应推送标识信息为1,对应的标识信息为2),此时信息集中包括服务器推送的全部待推送信息,未存在丢失待推送信息的情况,在已推送标识信息为2时(此时信息集为空),在信息集中没有查找到对应的待推送信息故向服务器拉取,此时服务器中不存在待推送信息B后的待推送信息,故此时拉取成功但没有拉取到待推送信息。此时将继续获取已推送标识信息和信息集。
[0074] 在一个实施例中,该方法,还包括:
[0075] 在所拉取信息表征拉取失败,且所述信息集不为空时,根据所述信息集中的推送标识信息更新所述已推送标识信息后继续查找所述信息集;
[0076] 在所拉取信息表征拉取成功,且所述拉取信息表征拉取到信息时,根据所拉取信息更新所述信息集,并返回执行获取已推送标识信息和信息集的步骤直至查找到将要推送的待推送信息;
[0077] 在所拉取信息表征拉取成功,且所拉取信息表征未拉取到信息,且所述信息集不空时,更新所述已推送标识信息后继续查找所述信息集。
[0078] 本实施例可以基于信息集所包括的内容更新已推送标识信息,以便于能够读取到将要推送的待推送信息,以推送至上层。
[0079] 在所拉取信息表征拉取成功,且所述拉取信息表征拉取到信息表征从服务器获取待推送信息成功,实现了待推送信息的有序推送。
[0080] 具体包括如下两个场景:
[0081] 场景1:信息集中所有待推送信息均传输至上层,信息集中包括待推送信息A(对应的标识信息为1)和待推送信息B(对应推送标识信息为1,对应的标识信息为2),已推送标识信息为2,在信息集中没有查找到推送标识信息为2的待推送信息故向服务器拉取,此处拉取成功,并且拉取到了待推送信息C(对应推送标识信息为2,对应的标识信息为3)和待推送信息D(对应推送标识信息为3,对应的标识信息为4),则需要更新信息集,如将待推送信息C和待推送信息D添加至信息集中,然后继续返回执行获取信息集和已推送标识信息的步骤继续执行。
[0082] 场景2:信息集存在待推送标识信息的丢失,信息集中包括待推送信息A(对应的标识信息为1)、待推送信息B(对应推送标识信息为1,对应的标识信息为2)和待推送信息D(对应推送标识信息为3,对应的标识信息为4),待推送信息C(对应推送标识信息为2,对应的标识信息为3)丢失,已推送标识信息为2,向服务器拉取信息时,成功拉取到了待推送信息C和待推送信息D,故,需要将待推送信息C添加至信息集以实现信息集的更新,然后返回获取更新后的信息集和已推送标识信息步骤继续执行。
[0083] 在所拉取信息表征拉取失败,且所述信息集不为空,表征服务器异常,但是信息集存在待推送信息,示例性的,信息集中包括待推送信息A(对应的标识信息为1)、待推送信息B(对应推送标识信息为1,对应的标识信息为2)和待推送信息D(对应推送标识信息为3,对应的标识信息为4),待推送信息C(对应推送标识信息为2,对应的标识信息为3)丢失,在已推送标识信息为2时,需要向服务器拉取信息,此时服务器异常,但是信息集中还有待推送信息D,故本公开可以更新已推送标识信息为3,然后基于3查找到待推送信息以推送至上层,从而避免待推送信息推送中断。
[0084] 在所拉取信息表征拉取成功,且所拉取信息表征未拉取到信息,且所述信息集不空,表征信息集中存在待推送信息的丢失,但是从服务端未获取到丢失的数据。
[0085] 示例性的,信息集中包括待推送信息A(对应的标识信息为1)、待推送信息B(对应推送标识信息为1,对应的标识信息为2)和待推送信息D(对应推送标识信息为3,对应的标识信息为4),待推送信息C(对应推送标识信息为2,对应的标识信息为3)丢失(此时信息集不为空),在向服务器拉取待推送信息C及后面的待推送信息时,虽然拉取成功(表征服务器无异常)但是由于某些原因,如服务端代码逻辑存在问题,故没有拉取到信息,即没有拉取到待推送信息。此处更新所述已推送标识信息后继续查找所述信息集,如将已推送标识信息更新为3,以获取待推送信息D推送至上层。从而避免向上层推送待推送信息的中断。
[0086] 本实施例可以基于拉取到的信息更新信息集,如从拉取到的信息中选取大于或等于已推送标识信息的推送标识信息所对应的待推送信息添加至信息集中,以便于继续从信息集中读取将要推送的待推送信息。
[0087] 在所拉取信息表征拉取成功,所拉取信息表征未拉取到信息且所述信息集不空继续执行获取操作时,可以基于信息集中的内容更新已推送标识信息,然后基于更新后的已推送标识信息查找信息集。
[0088] 在一个实施例中,更新所述已推送标识信息,包括:
[0089] 在所述已推送标识信息不为空时,将所述信息集中数值大于已推送标识信息所表征数值的推送标识信息中所表征数值最小的推送标识信息确定为更新后的已推送标识信息;
[0090] 在所述已推送标识信息为空时,将所述信息集所包括推送标识信息中所表征数值最小的推送标识信息确定为更新后的已推送标识信息;
[0091] 其中,所述信息集中的推送标识信息表征上一个待推送信息的标识信息,所述标识信息包括顺序号。
[0092] 顺序号可以用于表征待推送信息从服务端获取的顺序。
[0093] 需要注意的是,已推送标识信息在服务器异常时可能会被清零,故在更新已推送标识信息时,需要首先确定已推送标识信息是否为空,以便于重新为已推送标识赋值,从而实现已推送标识信息的更新。
[0094] 在一个实施例中,获取已推送标识信息,包括:
[0095] 在获取到的已推送标识信息为空时,将所述信息集所包括推送标识信息中所表征数值最小的推送标识信息确定为已推送标识信息。
[0096] 需要注意的是,在服务器异常时,可以执行已推送标识信息清空操作,从而已推送标识信息为空。
[0097] 实施例二
[0098] 图2为本公开实施例二提供的一种信息推送方法的流程示意图,本实施例二在上述实施例中各个可选方案为基础进行具体化。在本实施例中,信息集通过如下步骤形成:
[0099] 获取待推送信息;
[0100] 在满足保序条件时,将所述待推送信息和所述待推送信息对应的推送标识信息存储至信息集中。
[0101] 本实施例尚未详尽的内容请参考实施例一。
[0102] 如图2所示,本公开实施例二提供的一种信息推送方法,包括如下步骤:
[0103] S210、获取待推送信息。
[0104] 待推送信息可以为从服务端获取的由终端设备推送至上层的信息。本步骤可以直接从服务端读取待推送信息,如通过回调推送方法从服务端读取待推送信息。
[0105] S220、在满足保序条件时,将所述待推送信息和所述待推送信息对应的推送标识信息存储至信息集中。
[0106] 在当前不满足保序条件时,本实施例可以直接将读取到的待推送信息推送至上层。在满足保序条件时,可以将待推送信息和对应的推送标识信息存储至信息集,以得到被推送。
[0107] 保序条件可以理解为确定待推送信息是否需要保序的条件,此处不对保序条件进行限定,只要能够表征所读取的待推送信息需要被保序且服务器状态正常即可。
[0108] 在一个实施例中,保序条件包括:
[0109] 当前开启推送保序功能,且服务器状态正常且所述待推送信息需要保序;
[0110] 其中,所述待推送信息是否需要保序基于所述待推送信息的属性确定。
[0111] 其中,服务器状态是否正常可以基于所读取待推送信息的具体内容确定。待推送信息是否需要保序可以基于待推送信息的属性确定。
[0112] 需要注意的是,本公开实现的是有序的向终端设备的上层推送待推送信息,如果不满足保序条件在获取到待推送信息后,可以直接向上层推送待推送信息;若满足保序条件,本公开可以通过信息集的形式存储服务器传输的各待推送信息,然后通过本公开公开的信息推送方法实现待推送信息的推送。其中保序条件可以认为是是否执行本公开所公开信息推送方法的判断条件,是待推送信息有序推送的前提条件。
[0113] S230、获取已推送标识信息和信息集,所述信息集中存储有待推送信息和所述待推送信息对应的推送标识信息。
[0114] S240、根据所述已推送标识信息和所述推送标识信息从所述信息集中查找对应所述已推送标识信息的待推送信息。
[0115] S250、在未查找到对应所述已推送标识信息的待推送信息时,从服务器拉取信息。
[0116] S260、在所拉取信息满足设定的拉取条件时,返回执行获取已推送标识信息和信息集的步骤直至查找到将要推送的待推送信息。
[0117] S270、传输所述将要推送的待推送信息。
[0118] 本公开实施例二提供的一种信息推送方法,优化包括了形成信息集的操作。利用该方法,能够有序存储来自服务端的待推送信息,并在存在异常情况时及时触发拉取,保证会议质量。
[0119] 以下对本公开进行示例性描述,本公开提供的信息推送方法可以认为是一种视频会议业务通用的推送有序性的改进方案,用于实现视频会议场景下,客户端上层收到有序推送的方案。在视频会议存在异常的情况下,现有技术存在发现不及时和限定场景在会议室的缺点。假设有几个推送:10点00分推送A,11点00分推送B,假设A丢失了,现有技术只有当推送B收到后,才能感知到推送A的丢失,从而触发拉取逻辑,并拉取到推送A。这种是会影响体验的,因为10点的推送要等到11点客户端才能收到。
[0120] 本公开提供的信息推送方法是一套封装良好的推送有序性模块,可以适用于于视频会议的各个子业务场景,比如会议室、投屏盒子、单品、视频会议子业务,如实现录制视频的Says;本公开通过定期拉取的方式,避免了原有方案中异常情况,即很晚才拉取很早之前推送的消息。
[0121] 图2a为本公开实施例提供的一种推送保序流程示意图,图2b为本公开实施例提供的一种消费线程的流程示意图,参见图2a和图2b,在实现推送保序时整体的实现遵循“生产者‑消费者”模型,数据包池子即PacketPool维护了数据包,WsChannel SDK作为生产者,数据包消费线程,即PacketConsumer作为消费者。
[0122] WsChannel Push为长连接推送通道,当收到新的推送,就会回调WsChannel SDK的onPush方法,以读取推送的数据包。
[0123] 如果当前APP不开启推送保序,则直接抛给上层(PushDispatcher即为上层)。如果当前APP开启推送保序,但是当前的Packet的pre_sid=="0"(服务器异常,此时已推送标识信息可以被清零,即clear mLastSid)或者ignore_correction属性为TRUE(该推送不需要保序),则直接抛给上层。否则就将Packet放入TreeMap(池子)中,该TreeMap的键为Packet的pre_sid即推送标识信息,值为数据包,即待推送信息。
[0124] 当池子中放入新元素,就会通知(NOTIFY,即推送通知)PacketConsumer处理,PacketConsumer会从TreeMap找到合适的数据包,并抛给上层,即传输至业务层,如果找不到就从服务端拉取合适的数据包给上层。
[0125] PacketConsumer类是数据包的消费线程,在应用启动时启动线程,并一直不断的循环(某些情况会进入等待,即WAIT状态,并等待被PacketPool NOTIFY),每次循环都执行相同的逻辑,有如下几个关键点:
[0126] mLastSid表示最后一次抛给上层的Packet的SID,即已推送标识信息。
[0127] TreeMap是一个数据包池子,正常情况下,收到长连推送的数据包后,先存放到这个池子,再通过PacketConsumer线程抛给上层。
[0128] 为了防止服务端逻辑错误导致数据包不连续,从而导致客户端消费线程卡住(为了等待一个不会来的数据包,上层的表现就是收不到推送push),本公开会在某些时机对mLastSid重新赋值(即rebuild方法)。
[0129] rebuild方法逻辑:
[0130] (1)如果池子为空,则直接返回参数的mLastSid;
[0131] (2)如果参数的mLastSid为空,则从池子里取最小的键返回给mLastSid;
[0132] (3)如果参数的mLastSid不为空,则将池子里小于mLastSid的推送标识信息和对应的待推送信息全部删除,以避免重复推送异常,并返回大于mLastSid的最小键给mLastSid。
[0133] PacketConsumer线程的一次循环逻辑如下:
[0134] 1.判断mLastSid是不是为空,假设为空,则对mLastSid重新赋值。(如果池子为空,则重新赋值完还是会为空)。
[0135] 2.从池子中取出键为mLastSid的数据包。
[0136] 3.如果数据包不为空,则把这个数据包通过PushDispatcher抛给上层。
[0137] 4.如果数据包为空,则表示当前没有可以继续处理的数据包,则通过pullPacketsByPreSid接口拉取当前sid之后的所有数据包(该方法内部拉取到数据后会把合适的数据放入池子)。
[0138] 1.拉取结果,即result>0:拉取成功(或请求成功),并且返回了多个值(即服务端返回了非空数据),则继续下一个循环,即对应在所拉取信息表征拉取成功,且所述拉取信息表征拉取到信息时,根据所拉取信息更新所述信息集,并返回执行获取已推送标识信息和信息集的步骤直至查找到将要推送的待推送信息。
[0139] 2.result=0:拉取成功,且没拉到值(即服务端返回空),如果池子为空,等待,即对应的拉取条件为所拉取信息表征拉取成功,且所拉取信息表征未拉取到信息,且所述信息集为空,且未收到推送通知的时长达到第二设定时长。result=0:拉取成功,且没拉到值(即服务端返回空),如果池子不为空,重新赋值,即对应在所拉取信息表征拉取成功,且所拉取信息表征未拉取到信息,且所述信息集不空时,更新所述已推送标识信息后继续查找所述信息集;
[0140] 3.result=‑1:拉取失败(或请求失败),且池子为空,等待,即对应的拉取条件为所拉取信息表征拉取失败,且所述信息集为空,且未收到推送通知的时长达到第一设定时长。
[0141] 4.result=‑2:拉取失败(或请求失败),且池子不为空,则对mLastSid重新赋值,并继续下一个循环,即对应在所拉取信息表征拉取失败,且所述信息集不为空时,根据所述信息集中的推送标识信息更新所述已推送标识信息后继续查找所述信息集。
[0142] 在PacketConsumer中实现了一个定时拉取的逻辑,如时间为5s,如果在处理时没有任何消息处理超过5s,就会触发拉取,从而保证即使最新的消息丢失,且下一条消息没有到来的时候,也能够触发拉取,从而拉取到最新的推送。
[0143] 本公开提供的信息推送方法是一套视频会议可复用的推送有序性方案,保证了能够及时拉取最新的推送。
[0144] 实施例三
[0145] 图3为本公开实施例三提供的一种信息推送装置的结构示意图,该装置可适用于客户端进行信息推送的情况,其中该装置可由软件和/或硬件实现,并一般集成在终端设备上。
[0146] 如图3所示,该装置包括:
[0147] 获取模块31,用于获取已推送标识信息和信息集,所述信息集中存储有待推送信息和所述待推送信息对应的推送标识信息;
[0148] 查找模块32,用于根据所述已推送标识信息和所述推送标识信息从所述信息集中查找对应所述已推送标识信息的待推送信息;
[0149] 拉取模块33,用于在未查找到对应所述已推送标识信息的待推送信息时,从服务器拉取信息;
[0150] 判断模块34,用于在所拉取信息满足设定的拉取条件时,返回执行获取已推送标识信息和信息集的步骤直至查找到将要推送的待推送信息;
[0151] 传输模块35,用于传输所述将要推送的待推送信息。
[0152] 在本实施例中,该装置首先通过获取模块31获取已推送标识信息和信息集,所述信息集中存储有待推送信息和所述待推送信息对应的推送标识信息;其次通过查找模块32根据所述已推送标识信息和所述推送标识信息从所述信息集中查找对应所述已推送标识信息的待推送信息;然后通过拉取模块33在未查找到对应所述已推送标识信息的待推送信息时,从服务器拉取信息;之后通过判断模块34在所拉取信息满足设定的拉取条件时,返回执行获取已推送标识信息和信息集的步骤直至查找到将要推送的待推送信息;最后通过传输模块35传输所述将要推送的待推送信息。
[0153] 本实施例提供了一种信息推送装置,能够通过主动拉取的方式及时获知通信异常情况的发生,提高了会议质量。
[0154] 进一步地,所述拉取条件包括如下之一:
[0155] 所拉取信息表征拉取失败,且所述信息集为空,且未收到推送通知的时长达到第一设定时长;
[0156] 所拉取信息表征拉取成功,且所拉取信息表征未拉取到信息,且所述信息集为空,且未收到推送通知的时长达到第二设定时长。
[0157] 进一步地,该装置还包括处理模块:
[0158] 在所拉取信息表征拉取失败,且所述信息集不为空时,根据所述信息集中的推送标识信息更新所述已推送标识信息后继续查找所述信息集;
[0159] 在所拉取信息表征拉取成功,且所述拉取信息表征拉取到信息时,根据所拉取信息更新所述信息集,并返回执行获取已推送标识信息和信息集的步骤直至查找到将要推送的待推送信息;
[0160] 在所拉取信息表征拉取成功,且所拉取信息表征未拉取到信息,且所述信息集不空时,更新所述已推送标识信息后继续查找所述信息集。
[0161] 进一步地,更新所述已推送标识信息,包括:
[0162] 在所述已推送标识信息不为空时,将所述信息集中数值大于已推送标识信息所表征数值的推送标识信息中所表征数值最小的推送标识信息确定为更新后的已推送标识信息;
[0163] 在所述已推送标识信息为空时,将所述信息集所包括推送标识信息中所表征数值最小的推送标识信息确定为更新后的已推送标识信息;
[0164] 其中,所述信息集中的推送标识信息表征上一个待推送信息的标识信息,所述标识信息包括顺序号。
[0165] 进一步地,所述信息集通过如下步骤形成:
[0166] 获取待推送信息;
[0167] 在满足保序条件时,将所述待推送信息和所述待推送信息对应的推送标识信息存储至信息集中。
[0168] 进一步地,所述保序条件包括:
[0169] 当前开启推送保序功能,且服务器状态正常且所述待推送信息需要保序;
[0170] 其中,所述待推送信息是否需要保序基于所述待推送信息的属性确定。
[0171] 进一步地,获取模块31获取已推送标识信息,包括:
[0172] 在获取到的已推送标识信息为空时,将所述信息集所包括推送标识信息中所表征数值最小的推送标识信息确定为已推送标识信息。
[0173] 上述信息推送装置可执行本公开任意实施例所提供的信息推送方法,具备执行方法相应的功能模块和有益效果。
[0174] 实施例四
[0175] 图4为本公开实施例四提供的一种终端设备的结构示意图。图4示出了适于用来实现本公开实施例的终端设备400的结构示意图。本公开实施例中的终端设备400可以包括但不限于诸如移动电话、笔记本电脑、数字广播接收器、个人数字助理(Personal Digital Assistant,PDA)、平板电脑(Portable Android Device,PAD)、便携式多媒体播放器(Portable Media Player,PMP)、车载终端(例如车载导航终端)等等的移动终端以及诸如数字TV、台式计算机等等的固定终端。图4示出的终端设备400仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
[0176] 如图4所示,终端设备400可以包括一个或多个处理装置(例如中央处理器、图形处理器等)401,其可以根据存储在只读存储器(Read‑Only Memory,ROM)402中的程序或者从存储装置408加载到随机访问存储器(Random Access Memory,RAM)403中的程序而执行各种适当的动作和处理。一个或多个处理装置401实现如本公开提供的信息推送方法。在RAM403中,还存储有终端设备400操作所需的各种程序和数据。处理装置401、ROM 402以及RAM403通过总线404彼此相连。输入/输出(Input/Output,I/O)接口405也连接至总线404。
[0177] 通常,以下装置可以连接至I/O接口405:包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的输入装置406;包括例如液晶显示器(Liquid Crystal Display,LCD)、扬声器、振动器等的输出装置407;包括例如磁带、硬盘等的存储装置408,存储装置408用于存储一个或多个程序;以及通信装置409。通信装置409可以允许终端设备400与其他设备进行无线或有线通信以交换数据。虽然图4示出了具有各种装置的终端设备
400,但是应理解的是,并不要求实施或具备所有示出的装置。可以替代地实施或具备更多或更少的装置。
[0178] 特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信装置409从网络上被下载和安装,或者从存储装置408被安装,或者从ROM402被安装。在该计算机程序被处理装置401执行时,执行本公开实施例的方法中限定的上述功能。
[0179] 需要说明的是,本公开上述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是,但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(Compact Disc Read‑Only Memory,CD‑ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、RF(射频)等等,或者上述的任意合适的组合。
[0180] 在一些实施方式中,客户端、服务器可以利用诸如超文本传输协议(Hyper Text Transfer Protocol,HTTP)之类的任何当前已知或未来研发的网络协议进行通信,并且可以与任意形式或介质的数字数据通信(例如,通信网络)互连。通信网络的示例包括局域网(LAN),广域网(WAN),网际网(例如,互联网)以及端对端网络(例如,ad hoc端对端网络),以及任何当前已知或未来研发的网络。
[0181] 上述计算机可读介质可以是上述终端设备400中所包含的;也可以是单独存在,而未装配入该终端设备400中。
[0182] 上述计算机可读介质存储有一个或者多个计算机程序,当上述一个或者多个程序被处理装置执行时实现如下方法:获取已推送标识信息和信息集,所述信息集中存储有待推送信息和所述待推送信息对应的推送标识信息;
[0183] 根据所述已推送标识信息和所述推送标识信息从所述信息集中查找对应所述已推送标识信息的待推送信息;
[0184] 在未查找到对应所述已推送标识信息的待推送信息时,从服务器拉取信息;
[0185] 在所拉取信息满足设定的拉取条件时,返回执行获取已推送标识信息和信息集的步骤直至查找到将要推送的待推送信息;
[0186] 传输所述将要推送的待推送信息。
[0187] 可以以一种或多种程序设计语言或其组合来编写用于执行本公开的操作的计算机程序代码,上述程序设计语言包括面向对象的程序设计语言,诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言,诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN)连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
[0188] 附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
[0189] 描述于本公开实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。其中,模块的名称在某种情况下并不构成对该模块本身的限定。
[0190] 本文中以上描述的功能可以至少部分地由一个或多个硬件逻辑部件来执行。例如,非限制性地,可以使用的示范类型的硬件逻辑部件包括:现场可编程门阵列(Field Programmable Gate Array,FPGA)、专用集成电路(Application Specific Integrated Circuit,ASIC)、专用标准产品(Application Specific Standard Parts,ASSP)、片上系统(System on Chip,SOC)、复杂可编程逻辑设备(Complex Programming logic device,CPLD)等等。
[0191] 在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD‑ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
[0192] 根据本公开的一个或多个实施例,示例1提供了一种信息推送方法,包括:
[0193] 获取已推送标识信息和信息集,所述信息集中存储有待推送信息和所述待推送信息对应的推送标识信息;
[0194] 根据所述已推送标识信息和所述推送标识信息从所述信息集中查找对应所述已推送标识信息的待推送信息;
[0195] 在未查找到对应所述已推送标识信息的待推送信息时,从服务器拉取信息;
[0196] 在所拉取信息满足设定的拉取条件时,返回执行获取已推送标识信息和信息集的步骤直至查找到将要推送的待推送信息;
[0197] 传输所述将要推送的待推送信息。
[0198] 根据本公开的一个或多个实施例,示例2根据示例1所述的方法,所述拉取条件包括如下之一:
[0199] 所拉取信息表征拉取失败,且所述信息集为空,且未收到推送通知的时长达到第一设定时长;
[0200] 所拉取信息表征拉取成功,且所拉取信息表征未拉取到信息,且所述信息集为空,且未收到推送通知的时长达到第二设定时长。
[0201] 根据本公开的一个或多个实施例,示例3根据示例1所述的方法,还包括:
[0202] 在所拉取信息表征拉取失败,且所述信息集不为空时,根据所述信息集中的推送标识信息更新所述已推送标识信息后继续查找所述信息集;
[0203] 在所拉取信息表征拉取成功,且所述拉取信息表征拉取到信息时,根据所拉取信息更新所述信息集,并返回执行获取已推送标识信息和信息集的步骤直至查找到将要推送的待推送信息;
[0204] 在所拉取信息表征拉取成功,且所拉取信息表征未拉取到信息,且所述信息集不空时,更新所述已推送标识信息后继续查找所述信息集。
[0205] 根据本公开的一个或多个实施例,示例4根据示例3所述的方法,更新所述已推送标识信息,包括:
[0206] 在所述已推送标识信息不为空时,将所述信息集中数值大于已推送标识信息所表征数值的推送标识信息中所表征数值最小的推送标识信息确定为更新后的已推送标识信息;
[0207] 在所述已推送标识信息为空时,将所述信息集所包括推送标识信息中所表征数值最小的推送标识信息确定为更新后的已推送标识信息;
[0208] 其中,所述信息集中的推送标识信息表征上一个待推送信息的标识信息,所述标识信息包括顺序号。
[0209] 根据本公开的一个或多个实施例,示例5根据示例1所述的方法,所述信息集通过如下步骤形成:
[0210] 获取待推送信息;
[0211] 在满足保序条件时,将所述待推送信息和所述待推送信息对应的推送标识信息存储至信息集中。
[0212] 根据本公开的一个或多个实施例,示例6根据示例5所述的方法,
[0213] 所述保序条件包括:
[0214] 当前开启推送保序功能,且服务器状态正常且所述待推送信息需要保序;
[0215] 其中,所述待推送信息是否需要保序基于所述待推送信息的属性确定。
[0216] 根据本公开的一个或多个实施例,示例7根据示例1所述的方法,
[0217] 获取已推送标识信息,包括:
[0218] 在获取到的已推送标识信息为空时,将所述信息集所包括推送标识信息中所表征数值最小的推送标识信息确定为已推送标识信息。
[0219] 根据本公开的一个或多个实施例,示例8提供了一种信息推送装置,包括:
[0220] 获取模块,用于获取已推送标识信息和信息集,所述信息集中存储有待推送信息和所述待推送信息对应的推送标识信息;
[0221] 查找模块,用于根据所述已推送标识信息和所述推送标识信息从所述信息集中查找对应所述已推送标识信息的待推送信息;
[0222] 拉取模块,用于在未查找到对应所述已推送标识信息的待推送信息时,从服务器拉取信息;
[0223] 判断模块,用于在所拉取信息满足设定的拉取条件时,返回执行获取已推送标识信息和信息集的步骤直至查找到将要推送的待推送信息;
[0224] 传输模块,用于传输所述将要推送的待推送信息。
[0225] 根据本公开的一个或多个实施例,示例9提供了一种终端设备,包括:
[0226] 一个或多个处理装置;
[0227] 存储装置,用于存储一个或多个程序;
[0228] 当所述一个或多个程序被所述一个或多个处理装置执行,使得所述一个或多个处理装置实现如示例1‑7中任一所述的信息推送方法。
[0229] 根据本公开的一个或多个实施例,示例10提供了一种计算机可读介质,其上存储有计算机程序,该程序被处理装置执行时实现如示例1‑7中任一所述的信息推送方法。
[0230] 以上描述仅为本公开的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本公开中所涉及的公开范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述公开构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本公开中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
[0231] 此外,虽然采用特定次序描绘了各操作,但是这不应当理解为要求这些操作以所示出的特定次序或以顺序次序执行来执行。在一定环境下,多任务和并行处理可能是有利的。同样地,虽然在上面论述中包含了若干具体实现细节,但是这些不应当被解释为对本公开的范围的限制。在单独的实施例的上下文中描述的某些特征还可以组合地实现在单个实施例中。相反地,在单个实施例的上下文中描述的各种特征也可以单独地或以任何合适的子组合的方式实现在多个实施例中。
[0232] 尽管已经采用特定于结构特征和/或方法逻辑动作的语言描述了本主题,但是应当理解所附权利要求书中所限定的主题未必局限于上面描述的特定特征或动作。相反,上面所描述的特定特征和动作仅仅是实现权利要求书的示例形式。