批量下载数据处理方法和装置转让专利

申请号 : CN201310379099.6

文献号 : CN104426946B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 王玉龙

申请人 : 腾讯科技(深圳)有限公司

摘要 :

本发明公开了一种批量下载数据处理方法和装置,所述批量下载数据处理方法包括:将原始队列中的多个待下载的数据项批量添加至下载队列中;按照各待下载的数据项在原始队列中的顺序,将各待下载的数据项对应的键值存储于映射表中;将已下载的数据项从所述下载队列中转移至完成队列中,并按照所述映射表中键值的顺序,排列已下载的数据项在所述完成队列中的顺序。本发明根据原始队列建立映射表,根据映射表中键值的顺序,排列完成队列,使完成队列中数据项顺序与原始队列中数据项顺序一致,有效保证了下载前后数据项的顺序性。

权利要求 :

1.一种批量下载数据处理方法,其特征在于,包括步骤:

将原始队列中的多个待下载的数据项批量添加至下载队列中;

按照各待下载的数据项在原始队列中的顺序,将各待下载的数据项对应的键值存储于映射表中;

将已下载的数据项从所述下载队列中转移至完成队列中,并按照所述映射表中键值的顺序,排列已下载的数据项在所述完成队列中的顺序。

2.根据权利要求1所述的批量下载数据处理方法,其特征在于,所述将已下载的数据项从所述下载队列中转移至完成队列中,并按照所述映射表中键值的顺序,排列已下载的数据项在所述完成队列中的顺序的步骤包括:确定已下载的数据项Ti对应的键值Ki;

在所述映射表中,按照与所述键值Ki的距离从近到远的顺序,依次查找排列于键值Ki之前的各个键值;

在每次查找到一个键值后,判断所述完成队列中是否存在当前查找到的键值对应的已下载的数据项,直至确定所述完成队列中存在当前查找到的键值对应的已下载的数据项,或者,直至确定所述完成队列中不存在任意一次查找到的键值对应的已下载的数据项;

确定所述完成队列中存在当前查找到的键值对应的已下载的数据项时,将已下载的数据项Ti从所述下载队列中转移至所述完成队列中,并排列在当前查找到的键值对应的已下载的数据项之后;

确定所述完成队列中不存在任意一次查找的键值对应的已下载的数据项时,将已下载的数据项Ti排列于所述完成队列的首位。

3.根据权利要求2所述的批量下载数据处理方法,其特征在于,所述确定已下载的数据项Ti对应的键值Ki的步骤之后还包括:当键值Ki在所述映射表中的位置为首位时,直接将已下载的数据项Ti从所述下载队列中转移至完成队列的首位。

4.根据权利要求1所述的批量下载数据处理方法,其特征在于,所述将已下载的数据项从所述下载队列中转移至完成队列中,并按照所述映射表中键值的顺序,排列已下载的数据项在所述完成队列中的顺序的步骤包括:确定已下载的数据项Ti对应的键值Ki;

在所述映射表中,按照与所述键值Ki的距离从近到远的顺序,依次查找排列于键值Ki之后的各个键值;

在每次查找到一个键值后,判断所述完成队列中是否存在当前查找到的键值对应的已下载的数据项,直至确定所述完成队列中存在当前查找到的键值对应的已下载的数据项,或者,直至确定所述完成队列中不存在任意一次查找到的键值对应的已下载的数据项;

确定所述完成队列中存在当前查找到的键值对应的已下载的数据项时,将已下载的数据项Ti从所述下载队列中转移至所述完成队列中,并排列在当前查找到的键值对应的已下载的数据项之前;

确定所述完成队列中不存在任意一次查找的键值对应的已下载的数据项时,将已下载的数据项Ti排列于所述完成队列的末位。

5.根据权利要求4所述的批量下载数据处理方法,其特征在于,所述确定已下载的数据项Ti对应的键值Ki的步骤之后还包括:当键值Ki在所述映射表中的位置为末位时,直接将已下载的数据项Ti从所述下载队列中转移至完成队列的末位。

6.一种批量下载数据处理装置,其特征在于,包括:

批量下载模块,用于将原始队列中的多个待下载的数据项批量添加至下载队列中;

键值映射模块,用于按照各待下载的数据项在原始队列中的顺序,将各待下载的数据项对应的键值存储于映射表中;

排序模块,用于将已下载的数据项从所述下载队列中转移至完成队列中,并按照所述映射表中键值的顺序,排列已下载的数据项在所述完成队列中的顺序。

7.根据权利要求6所述的批量下载数据处理装置,其特征在于,所述排序模块用于:确定已下载的数据项Ti对应的键值Ki;

在所述映射表中,按照与所述键值Ki的距离从近到远的顺序,依次查找排列于键值Ki之前的各个键值;

在每次查找到一个键值后,判断所述完成队列中是否存在当前查找到的键值对应的已下载的数据项,直至确定所述完成队列中存在当前查找到的键值对应的已下载的数据项,或者,直至确定所述完成队列中不存在任意一次查找到的键值对应的已下载的数据项;

确定所述完成队列中存在当前查找到的键值对应的已下载的数据项时,将已下载的数据项Ti从所述下载队列中转移至所述完成队列中,并排列在当前查找到的键值对应的已下载的数据项之后;

确定所述完成队列中不存在任意一次查找的键值对应的已下载的数据项时,将已下载的数据项Ti排列于所述完成队列的首位。

8.根据权利要求7所述的批量下载数据处理装置,其特征在于,所述排序模块还用于:当键值Ki在所述映射表中的位置为首位时,直接将已下载的数据项Ti从所述下载队列中转移至完成队列的首位。

9.根据权利要求6所述的批量下载数据处理装置,其特征在于,所述排序模块用于:确定已下载的数据项Ti对应的键值Ki;

在所述映射表中,按照与所述键值Ki的距离从近到远的顺序,依次查找排列于键值Ki之后的各个键值;

在每次查找到一个键值后,判断所述完成队列中是否存在当前查找到的键值对应的已下载的数据项,直至确定所述完成队列中存在当前查找到的键值对应的已下载的数据项,或者,直至确定所述完成队列中不存在任意一次查找到的键值对应的已下载的数据项;

确定所述完成队列中存在当前查找到的键值对应的已下载的数据项时,将已下载的数据项Ti从所述下载队列中转移至所述完成队列中,并排列在当前查找到的键值对应的已下载的数据项之前;

确定所述完成队列中不存在任意一次查找的键值对应的已下载的数据项时,将已下载的数据项Ti排列于所述完成队列的末位。

10.根据权利要求9所述的批量下载数据处理装置,其特征在于,所述排序模块还用于:当键值Ki在所述映射表中的位置为末位时,直接将已下载的数据项Ti从所述下载队列中转移至完成队列的末位。

说明书 :

批量下载数据处理方法和装置

技术领域

[0001] 本发明涉及到数据处理技术领域,特别涉及到批量下载数据处理方法和装置。

背景技术

[0002] 手机、PAD、电脑、网络电视等智能终端通过网络下载文档、应用等数据时,可通过以下两种方式。一种是提供单个下载方式,这种方式在下载多个数据时,需要用户一个一个的点击下载,频繁的单个下载操作无疑会给用户带来麻烦。另一种是提供批量下载方式,批量下载可一次性将多个数据或整个队列的每一项数据都添加到下载队列中,能满足用户想要同时下载多个数据或整个队列数据的需求,但是,在批量下载过程中,当用户人为的改变下了载顺序时,下载完成后的队列顺序与原队列的顺序可能存在差异,不便于用户定位原数据,特别是对于一些有规律的数据,则破坏了原数据队列的有序性。

发明内容

[0003] 本发明实施例提供一种批量下载数据处理方法和装置,能够保证批量下载的有序性。
[0004] 本发明实施例提出一种批量下载数据处理方法,包括步骤:
[0005] 将原始队列中的多个待下载的数据项批量添加至下载队列中;
[0006] 按照各待下载的数据项在原始队列中的顺序,将各待下载的数据项对应的键值存储于映射表中;
[0007] 将已下载的数据项从所述下载队列中转移至完成队列中,并按照所述映射表中键值的顺序,排列已下载的数据项在所述完成队列中的顺序。
[0008] 本发明实施例还提出一种批量下载数据处理装置,包括:
[0009] 批量下载模块,用于将原始队列中的多个待下载的数据项批量添加至下载队列中;
[0010] 键值映射模块,用于按照各待下载的数据项在原始队列中的顺序,将各待下载的数据项对应的键值存储于映射表中;
[0011] 排序模块,用于将已下载的数据项从所述下载队列中转移至完成队列中,并按照所述映射表中键值的顺序,排列已下载的数据项在所述完成队列中的顺序。
[0012] 本发明实施例根据原始队列中待下载数据项的顺序,建立映射表,映射表中存储的键值与待下载数据项一一对应,且顺序一致,在将已下载数据项从下载队列转移至完成队列时,根据已下载数据项对应的键值在映射表中的顺序,排列完成队列中已下载数据项的顺序,使完成队列中数据项顺序与原始队列中数据项顺序一致,有效保证了下载前后数据项的顺序性。

附图说明

[0013] 图1为本发明批量下载数据处理方法的第一实施例的流程图;
[0014] 图2为本发明批量下载数据处理方法的第二实施例的流程图;
[0015] 图3为本发明批量下载数据处理方法的第三实施例的流程图;
[0016] 图4为本发明批量下载数据处理方法的第四实施例的流程图;
[0017] 图5为本发明批量下载数据处理方法的第五实施例的流程图;
[0018] 图6为本发明批量下载数据处理方法的第六实施例的流程图;
[0019] 图7为本发明批量下载数据处理方法的第七实施例的流程图;
[0020] 图8为本发明实施例中批量下载数据处理装置的结构示意图;
[0021] 图9为本发明实施例中批量下载数据处理的总体的队列示意图;
[0022] 图10为本发明实施例中批量下载数据处理的第一实施方案的队列示意图;
[0023] 图11为本发明实施例中批量下载数据处理的第二实施方案的队列示意图。
[0024] 本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

[0025] 应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0026] 如图1所示,图1为本发明批量下载数据处理方法的第一实施例的流程图。请一并参照图9,本实施例提到的批量下载数据处理方法,包括:
[0027] 步骤S10,将原始队列中的多个待下载的数据项批量添加至下载队列中;
[0028] 本实施例中,在网络服务器上存储有多个数据项,这些数据项根据特定的规则排序,例如,根据更新时间先后顺序、数据项名称的首字母顺序、数据项大小等方式来排序数据项,形成原始队列。智能终端通过网络连接到服务器上,用户通过智能终端浏览原始队列,并选择需要下载的数据项。当用户选中了多个数据项批量下载时,智能终端将选中的待下载数据项批量添加至下载队列中,添加的待下载数据项可以是整个原始列表的数据项或原始列表中的部分数据项。
[0029] 待下载数据项添加后,用户可以手动调整下载队列中待下载数据项的下载顺序,例如,暂停某个数据项,或设置某个数据项的下载级别为高优先级,或限制某些数据项的下载速度,避免占用其他数据项的网速。此外,智能终端对下载队列中的待下载数据项也可以不是同时下载,可根据当前的网速状况,对待下载数据项的下载顺序进行自动调整,例如,对于下载速度快的数据项,智能终端将其调整为优先下载,对于下载速度慢的数据项,智能终端暂停下载,避免占用其他数据项的网速,待高优先级的数据项下载完成后,再重新继续下载。
[0030] 步骤S20,按照各待下载的数据项在原始队列中的顺序,将各待下载的数据项对应的键值存储于映射表中;
[0031] 由于下载队列中数据项下载的先后顺序可调,为了避免下载完成后的队列中数据项的顺序与原始队列中数据项的顺序不一致,本实施例在待下载数据项添加到下载队列的同时,还根据待下载的数据项在原始队列中的顺序建立映射表,该映射表中存储有各待下载的数据项对应的键值。键值可根据待下载数据项的标识符来确定,一个键值与一个数据项一一对应。智能终端在映射表中存储键值时,按照各待下载的数据项在原始队列中的顺序,排列各键值在映射表中的顺序,映射表中与数据项对应的键值的顺序与原始队列中数据项的顺序一致。
[0032] 步骤S30,将已下载的数据项从下载队列中转移至完成队列中,并按照映射表中键值的顺序,排列已下载的数据项在完成队列中的顺序。
[0033] 下载队列中的数据项下载完成后,智能终端将其从下载队列中移除,并添加到完成队列中,此时,为了确保下载完成的数据项的顺序与原始队列的数据项的顺序一致,移动终端根据已下载的数据项,在映射表中查找对应的键值,并根据键值在映射表中的顺序,来排列已下载数据项在完成队列中的顺序。由于映射表中键值的顺序是按照原始队列中数据项的顺序进行排列的,因此,此时在完成队列中的数据项的顺序也与原始队列中数据项的顺序一致,有效保证了下载前后数据项的顺序性。
[0034] 本实施例根据原始队列中待下载数据项的顺序,建立映射表,映射表中存储的键值与待下载数据项一一对应,且顺序一致,在将已下载数据项从下载队列转移至完成队列时,根据已下载数据项对应的键值在映射表中的顺序,排列完成队列中已下载数据项的顺序,使完成队列中数据项顺序与原始队列中数据项顺序一致,有效保证了下载前后数据项的顺序性。
[0035] 如图2所示,图2为本发明批量下载数据处理方法的第二实施例的流程图。本实施例以图1所示实施例为基础,对排序完成队列的步骤的第一实施方案详细描述,请一并参照图10,其中,步骤S30包括:
[0036] 步骤S311,确定已下载的数据项Ti对应的键值Ki;
[0037] 步骤S312,在映射表中查询排列于键值Ki之前第n位的键值Kj;
[0038] 步骤S313,在完成队列中查找键值Kj对应的已下载的数据项Tj;
[0039] 步骤S314,将已下载的数据项Ti从下载队列中转移至完成队列中,并排列在已下载的数据项Tj之后。
[0040] 本实施例中,n的初始值为1,即从映射表中排列于键值Ki之前一位的键值开始查询。获取到键值Kj后,在完成队列中查找是否有键值Kj对应的数据项Tj,由于在映射表中Kj和Ki之间的先后顺序与原始队列中Tj和Ti的先后顺序一致,因此,在将完成队列中的数据项顺序还原时,根据Kj和Ki的先后顺序,将已下载的数据项Ti排列在已下载的数据项Tj之后,使完成队列中数据项顺序与原始队列中数据项顺序一致,有效确保了下载前后数据项的顺序性。此外,本实施例尤其适用于在下载队列中顺序下载的数据项,先下载的数据项排列在前端,在完成队列中查找键值对应的数据项时更加快捷,进一步提高了已下载数据项的排序效率。
[0041] 如图3所示,图3为本发明批量下载数据处理方法的第三实施例的流程图。本实施例以图2所示实施例为基础,在步骤S313之后还包括:
[0042] 步骤S315,当完成队列中不存在键值Kj对应的已下载的数据项Tj时,在映射表中查询排列于键值Ki之前第n+1位的键值Kg;
[0043] 步骤S316,在完成队列中查找键值Kg对应的已下载的数据项Tg;
[0044] 步骤S317,将已下载的数据项Ti从下载队列中转移至完成队列中,并排列在已下载的数据项Tg之后。
[0045] 本实施例中,当键值Kj对应的数据项Tj还没有完成下载时,在完成队列中不能找到数据项Tj,此时,可以从映射表中查询排列于键值Ki之前两位的键值,如果在完成队列中仍然未找到Kg对应的数据项Tg,则从映射表中查询排列于键值Ki之前三位的键值,以此类推,直至在完成队列中找到键值与Ki排列最近的数据项,并将Ti插入到找到的数据项之后,使完成队列中数据项顺序与原始队列中数据项顺序一致,有效确保了下载前后数据项的顺序性。此外,如果遍历映射表中排列于键值Ki之前的所有键值,在完成队列都没有找到对应的数据项,则说明排列于数据项Ti之前的数据项均未完成下载,此时可直接将数据项Ti排列于完成队列的首位,在其他在前数据项到达时,再向后移位。
[0046] 如图4所示,图4为本发明批量下载数据处理方法的第四实施例的流程图。本实施例以图2所示实施例为基础,在步骤S311之后还包括:
[0047] 步骤S318,当键值Kj在映射表中的位置为首位时,直接将已下载的数据项Ti从下载队列中转移至完成队列的首位。
[0048] 本实施例对于映射表首位的键值,在其前端没有多余的键值,不适用上述实施例中的查找方式,此时,为了缩短查找时间,提高查找效率,在查找键值前,先判断该键值Ki是否位于映射表首位,对于位于首位的键值,其对应的数据项在原始队列中也位于首位,则在完成队列中,可直接将数据项Ti排列于完成队列的首位,减少了查找过程,缩短了排序时间,进一步提高了已下载数据项的排序效率。
[0049] 如图5所示,图5为本发明批量下载数据处理方法的第五实施例的流程图。本实施例以图1所示实施例为基础,对排序完成队列的步骤的第二实施方案详细描述,请一并参照图11,其中,步骤S30包括:
[0050] 步骤S321,确定已下载的数据项Ti对应的键值Ki;
[0051] 步骤S322,在映射表中查询排列于键值Ki之后第m位的键值Kj’;
[0052] 步骤S323,在完成队列中查找键值Kj’对应的已下载的数据项Tj’;
[0053] 步骤S324,将已下载的数据项Ti从下载队列中转移至完成队列中,并排列在已下载的数据项Tj’之前。
[0054] 本实施例中,m的初始值为1,即从映射表中排列于键值Ki之后一位的键值开始查询。获取到键值Kj’后,在完成队列中查找是否有键值Kj’对应的数据项Tj’,由于在映射表中Kj’和Ki之间的先后顺序与原始队列中Tj和Ti的先后顺序一致,因此,在将完成队列中的数据项顺序还原时,根据Kj’和Ki的先后顺序,将已下载的数据项Ti排列在已下载的数据项Tj’之前,使完成队列中数据项顺序与原始队列中数据项顺序一致,有效确保了下载前后数据项的顺序性。此外,本实施例尤其适用于在下载队列中逆序下载的数据项,先下载的数据项排列在后端,在完成队列中查找键值对应的数据项时更加快捷,进一步提高了已下载数据项的排序效率。
[0055] 如图6所示,图6为本发明批量下载数据处理方法的第六实施例的流程图。本实施例以图5所示实施例为基础,在步骤S323之后还包括:
[0056] 步骤S325,当完成队列中不存在键值Kj’对应的已下载的数据项Tj’时,在映射表中查询排列于键值Ki之后第m+1位的键值Kg’;
[0057] 步骤S326,在完成队列中查找键值Kg’对应的已下载的数据项Tg’;
[0058] 步骤S327,将已下载的数据项Ti从下载队列中转移至完成队列中,并排列在已下载的数据项Tg’之前。
[0059] 本实施例中,当键值Kj’对应的数据项Tj’还没有完成下载时,在完成队列中不能找到数据项Tj’,此时,可以从映射表中查询排列于键值Ki之后两位的键值,如果在完成队列中仍然未找到Kg’对应的数据项Tg’,则从映射表中查询排列于键值Ki之后三位的键值,以此类推,直至在完成队列中找到键值与Ki排列最近的数据项,并将Ti插入到找到的数据项之前,使完成队列中数据项顺序与原始队列中数据项顺序一致,有效确保了下载前后数据项的顺序性。此外,如果遍历映射表中排列于键值Ki之后的所有键值,在完成队列都没有找到对应的数据项,则说明排列于数据项Ti之后的数据项均未完成下载,此时可直接将数据项Ti排列于完成队列的末位,在其他在前数据项到达时,再向前移位。
[0060] 如图7所示,图7为本发明批量下载数据处理方法的第七实施例的流程图。本实施例以图5所示实施例为基础,在步骤S321之后还包括:
[0061] 步骤S328,当键值Kj在映射表中的位置为末位时,直接将已下载的数据项Ti从下载队列中转移至完成队列的末位。
[0062] 本实施例对于映射表末位的键值,在其后端没有多余的键值,不适用上述实施例中的查找方式,此时,为了缩短查找时间,提高查找效率,在查找键值前,先判断该键值Ki是否位于映射表末位,对于位于末位的键值,其对应的数据项在原始队列中也位于末位,则在完成队列中,可直接将数据项Ti排列于完成队列的末位,减少了查找过程,缩短了排序时间,进一步提高了已下载数据项的排序效率。
[0063] 如图8所示,图8为本发明实施例中批量下载数据处理装置的结构示意图。请一并参照图9,本发明实施例提到的批量下载数据处理装置,包括:
[0064] 批量下载模块10,用于将原始队列中的多个待下载的数据项批量添加至下载队列中;
[0065] 键值映射模块20,用于按照各待下载的数据项在原始队列中的顺序,将各待下载的数据项对应的键值存储于映射表中;
[0066] 排序模块30,用于将已下载的数据项从下载队列中转移至完成队列中,并按照映射表中键值的顺序,排列已下载的数据项在完成队列中的顺序。
[0067] 本实施例中,在网络服务器上存储有多个数据项,这些数据项根据特定的规则排序,例如,根据更新时间先后顺序、数据项名称的首字母顺序、数据项大小等方式来排序数据项,形成原始队列。智能终端通过网络连接到服务器上,用户通过智能终端浏览原始队列,并选择需要下载的数据项。当用户选中了多个数据项批量下载时,智能终端将选中的待下载数据项批量添加至下载队列中,添加的待下载数据项可以是整个原始列表的数据项或原始列表中的部分数据项。
[0068] 待下载数据项添加后,用户可以手动调整下载队列中待下载数据项的下载顺序,例如,暂停某个数据项,或设置某个数据项的下载级别为高优先级,或限制某些数据项的下载速度,避免占用其他数据项的网速。此外,智能终端对下载队列中的待下载数据项也可以不是同时下载,可根据当前的网速状况,对待下载数据项的下载顺序进行自动调整,例如,对于下载速度快的数据项,智能终端将其调整为优先下载,对于下载速度慢的数据项,智能终端暂停下载,避免占用其他数据项的网速,待高优先级的数据项下载完成后,再重新继续下载。
[0069] 由于下载队列中数据项下载的先后顺序可调,为了避免下载完成后的队列中数据项的顺序与原始队列中数据项的顺序不一致,本实施例在待下载数据项添加到下载队列的同时,还根据待下载的数据项在原始队列中的顺序建立映射表,该映射表中存储有各待下载的数据项对应的键值。键值可根据待下载数据项的标识符来确定,一个键值与一个数据项一一对应。智能终端在映射表中存储键值时,按照各待下载的数据项在原始队列中的顺序,排列各键值在映射表中的顺序,映射表中与数据项对应的键值的顺序与原始队列中数据项的顺序一致。
[0070] 下载队列中的数据项下载完成后,智能终端将其从下载队列中移除,并添加到完成队列中,此时,为了确保下载完成的数据项的顺序与原始队列的数据项的顺序一致,移动终端根据已下载的数据项,在映射表中查找对应的键值,并根据键值在映射表中的顺序,来排列已下载数据项在完成队列中的顺序。由于映射表中键值的顺序是按照原始队列中数据项的顺序进行排列的,因此,此时在完成队列中的数据项的顺序也与原始队列中数据项的顺序一致,有效保证了下载前后数据项的顺序性。
[0071] 本实施例根据原始队列中待下载数据项的顺序,建立映射表,映射表中存储的键值与待下载数据项一一对应,且顺序一致,在将已下载数据项从下载队列转移至完成队列时,根据已下载数据项对应的键值在映射表中的顺序,排列完成队列中已下载数据项的顺序,使完成队列中数据项顺序与原始队列中数据项顺序一致,有效保证了下载前后数据项的顺序性。
[0072] 请一并参照图10,在排序完成队列的第一实施方案中, 排序模块30用于:
[0073] 确定已下载的数据项Ti对应的键值Ki;
[0074] 在映射表中查询排列于键值Ki之前第n位的键值Kj,其中,n的初始值为1;
[0075] 在完成队列中查找键值Kj对应的已下载的数据项Tj;
[0076] 将已下载的数据项Ti从下载队列中转移至完成队列中,并排列在已下载的数据项Tj之后。
[0077] 本实施例中,n的初始值为1,即从映射表中排列于键值Ki之前一位的键值开始查询。获取到键值Kj后,在完成队列中查找是否有键值Kj对应的数据项Tj,由于在映射表中Kj和Ki之间的先后顺序与原始队列中Tj和Ti的先后顺序一致,因此,在将完成队列中的数据项顺序还原时,根据Kj和Ki的先后顺序,将已下载的数据项Ti排列在已下载的数据项Tj之后,使完成队列中数据项顺序与原始队列中数据项顺序一致,有效确保了下载前后数据项的顺序性。此外,本实施例尤其适用于在下载队列中顺序下载的数据项,先下载的数据项排列在前端,在完成队列中查找键值对应的数据项时更加快捷,进一步提高了已下载数据项的排序效率。
[0078] 进一步的,排序模块30还用于:
[0079] 当完成队列中不存在键值Kj对应的已下载的数据项Tj时,在映射表中查询排列于键值Ki之前第n+1位的键值Kg;
[0080] 在完成队列中查找键值Kg对应的已下载的数据项Tg;
[0081] 将已下载的数据项Ti从下载队列中转移至完成队列中,并排列在已下载的数据项Tg之后。
[0082] 本实施例中,当键值Kj对应的数据项Tj还没有完成下载时,在完成队列中不能找到数据项Tj,此时,可以从映射表中查询排列于键值Ki之前两位的键值,如果在完成队列中仍然未找到Kg对应的数据项Tg,则从映射表中查询排列于键值Ki之前三位的键值,以此类推,直至在完成队列中找到键值与Ki排列最近的数据项,并将Ti插入到找到的数据项之后,使完成队列中数据项顺序与原始队列中数据项顺序一致,有效确保了下载前后数据项的顺序性。此外,如果遍历映射表中排列于键值Ki之前的所有键值,在完成队列都没有找到对应的数据项,则说明排列于数据项Ti之前的数据项均未完成下载,此时可直接将数据项Ti排列于完成队列的首位,在其他在前数据项到达时,再向后移位。
[0083] 进一步的,排序模块30还用于:
[0084] 当键值Kj在映射表中的位置为首位时,直接将已下载的数据项Ti从下载队列中转移至完成队列的首位。
[0085] 本实施例对于映射表首位的键值,在其前端没有多余的键值,不适用上述实施例中的查找方式,此时,为了缩短查找时间,提高查找效率,在查找键值前,先判断该键值Ki是否位于映射表首位,对于位于首位的键值,其对应的数据项在原始队列中也位于首位,则在完成队列中,可直接将数据项Ti排列于完成队列的首位,减少了查找过程,缩短了排序时间,进一步提高了已下载数据项的排序效率。
[0086] 请一并参照图11,在排序完成队列的第二实施方案中,排序模块30用于:
[0087] 确定已下载的数据项Ti对应的键值Ki;
[0088] 在映射表中查询排列于键值Ki之后第m位的键值Kj’,其中,m的初始值为1;
[0089] 在完成队列中查找键值Kj’对应的已下载的数据项Tj’;
[0090] 将已下载的数据项Ti从下载队列中转移至完成队列中,并排列在已下载的数据项Tj’之前。
[0091] 本实施例中,m的初始值为1,即从映射表中排列于键值Ki之后一位的键值开始查询。获取到键值Kj’后,在完成队列中查找是否有键值Kj’对应的数据项Tj’,由于在映射表中Kj’和Ki之间的先后顺序与原始队列中Tj和Ti的先后顺序一致,因此,在将完成队列中的数据项顺序还原时,根据Kj’和Ki的先后顺序,将已下载的数据项Ti排列在已下载的数据项Tj’之前,使完成队列中数据项顺序与原始队列中数据项顺序一致,有效确保了下载前后数据项的顺序性。此外,本实施例尤其适用于在下载队列中逆序下载的数据项,先下载的数据项排列在后端,在完成队列中查找键值对应的数据项时更加快捷,进一步提高了已下载数据项的排序效率。
[0092] 进一步的,排序模块30还用于:
[0093] 当完成队列中不存在键值Kj’对应的已下载的数据项Tj’时,在映射表中查询排列于键值Ki之后第m+1位的键值Kg’;
[0094] 在完成队列中查找键值Kg’对应的已下载的数据项Tg’;
[0095] 将已下载的数据项Ti从下载队列中转移至完成队列中,并排列在已下载的数据项Tg’之前。
[0096] 本实施例中,当键值Kj’对应的数据项Tj’还没有完成下载时,在完成队列中不能找到数据项Tj’,此时,可以从映射表中查询排列于键值Ki之后两位的键值,如果在完成队列中仍然未找到Kg’对应的数据项Tg’,则从映射表中查询排列于键值Ki之后三位的键值,以此类推,直至在完成队列中找到键值与Ki排列最近的数据项,并将Ti插入到找到的数据项之前,使完成队列中数据项顺序与原始队列中数据项顺序一致,有效确保了下载前后数据项的顺序性。此外,如果遍历映射表中排列于键值Ki之后的所有键值,在完成队列都没有找到对应的数据项,则说明排列于数据项Ti之后的数据项均未完成下载,此时可直接将数据项Ti排列于完成队列的末位,在其他在前数据项到达时,再向前移位。
[0097] 进一步的,排序模块30还用于:
[0098] 当键值Kj在映射表中的位置为末位时,直接将已下载的数据项Ti从下载队列中转移至完成队列的末位。
[0099] 本实施例对于映射表末位的键值,在其后端没有多余的键值,不适用上述实施例中的查找方式,此时,为了缩短查找时间,提高查找效率,在查找键值前,先判断该键值Ki是否位于映射表末位,对于位于末位的键值,其对应的数据项在原始队列中也位于末位,则在完成队列中,可直接将数据项Ti排列于完成队列的末位,减少了查找过程,缩短了排序时间,进一步提高了已下载数据项的排序效率。
[0100] 需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
[0101] 上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
[0102] 通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。具体地,图8所述的批量下载数据处理装置所对应的程序指令可以存储在手机、平板电脑等智能终端的可读存储介质中,并被其中的至少一个处理器执行,以实现图1至图7所述的批量下载数据处理方法。
[0103] 以上所述仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。