本申请涉及通信技术领域,具体涉及一种文件下载方法及相关产品。
背景技术:
现有的amc业务系统一般采用同步下载的方法进行文件下载。然而,同步下载的方法存在诸多问题。
其一,当正在下载的文件过大时,会导致文件下载中断,需要业务人员重复操作执行下载。其二,当正在下载的文件数量过大时,业务人员很难发现文件是否下载完成,很有可能误以为文件已下载完成而关闭浏览器,导致文件下载中断,业务人员下次进入系统后无法看到之前的下载情况,需要重新下载。其三,当下载发生异常中断时,需要业务人员人为修复后才能继续执行下载。其四,业务服务机器的能力有限,针对不同的文件,如果业务人员都需要重复获取时,重复的下载操作增加了浏览器和服务器的负载压力,从而容易导致业务服务机器瘫痪。因此,现有的amc业务系统文件下载的效率低下。
技术实现要素:
本申请实施例提供了一种文件下载方法及相关产品,通过实施本申请实施例,采用队列下载技术进行文件下载,有利于提高文件下载的效率。
第一方面,本申请实施例提供了一种文件下载方法,应用于电子设备,所述方法包括:
创建下载任务队列;
提取出所述下载任务队列中每个下载任务的第一预设数量的任务特征;
将所述每个下载任务的第一预设数量的任务特征进行优先级处理,得到所述每个下载任务的下载优先级顺序;
根据所述下载优先级顺序执行所述下载任务队列中的下载任务;
当下载发生异常中断时,将所述异常中断的下载任务从所述下载任务队列中抛出,并继续根据所述下载优先级顺序执行所述下载任务队列中未执行的下载任务;
对所述异常中断的下载任务进行修复,并在预设时间执行修复后的下载任务。
可选地,所述创建下载任务队列包括:
根据用户在用户界面输入的查询条件确定下载任务;
判断所述下载任务是否在所述下载任务队列中;
若所述下载任务不在所述下载任务队列中,则将所述下载任务加入所述下载任务队列中。
可选地,若所述下载任务在所述下载任务队列中,所述方法还包括:
判断所述下载任务的执行结果;
若所述下载任务已执行成功,则提取所述下载任务的第二预设数量的任务特征;
根据所述下载任务的第二预设数量的任务特征在所述电子设备中查询所述下载任务下载的文件的存储地址信息;
根据所述存储地址信息读取所述下载任务下载的文件,并将读取到的文件推送至所述用户界面。
可选地,所述根据所述下载优先级顺序执行所述下载任务队列中的下载任务包括:
向服务器发送所述下载任务队列中每个下载任务的下载请求;
接收所述服务器根据所述下载请求发送的每个下载任务对应的下载地址信息;
根据所述下载地址信息按照所述下载优先级顺序依次下载所述下载任务需要下载的文件。
可选地,所述将所述异常中断的下载任务从所述下载任务队列中抛出包括:
读取所述下载任务队列中异常中断的下载任务;
重新执行所述异常中断的下载任务;
判断重新执行所述异常中断的下载任务的执行结果;
若重新执行失败,则将所述异常中断的下载任务从所述下载任务队列中抛出。
可选地,所述对所述异常中断的下载任务进行修复,并在预设时间执行修复后的下载任务包括:
判断所述异常中断的下载任务的异常中断类型是否为预设异常中断类型;
若是预设异常中断类型,则向服务器发送修复请求,其中,所述修复请求包括第三预设数量的所述异常中断的下载任务的任务特征;
接收服务器根据所述第三预设数量的任务特征发送的所述异常中断的下载任务对应的下载地址信息;
在预设时间根据所述下载地址信息重新执行所述异常中断的下载任务。
可选地,在将所述每个下载任务的任务特征进行优先级处理之前,所述方法还包括:
从预设时间段内的历史下载任务队列中获取第四预设数量的历史下载任务;
从所述第四预设数量的历史下载任务中提取出第五预设数量的历史任务特征;
利用tf-idf算法计算得到所述第五预设数量的历史任务特征中每个历史任务特征的tf值和所述第四预设数量的历史下载任务中每个历史下载任务的idf值;
根据所述每个历史任务特征的tf值和所述每个历史下载任务的idf值计算得到所述每个历史下载任务的tf-idf值;
将tf-idf值大于预设阈值的历史下载任务对应的历史任务特征输入机器学习算法中进行训练,得到下载优先级模型,所述下载优先级模型用于将所述每个下载任务的第一预设数量的任务特征进行优先级处理,得到所述每个下载任务的下载优先级顺序。
第二方面,本申请实施例提供了一种文件下载装置,应用于电子设备,所述装置包括:
创建单元,用于创建下载任务队列;
提取单元,用于提取出所述下载任务队列中每个下载任务的第一预设数量的任务特征;
处理单元,用于将所述每个下载任务的第一预设数量的任务特征进行优先级处理,得到所述每个下载任务的下载优先级顺序;
执行单元,用于根据所述下载优先级顺序执行所述下载任务队列中的下载任务;
抛出单元,用于当下载发生异常中断时,将所述异常中断的下载任务从所述下载任务队列中抛出,并继续根据所述下载优先级顺序执行所述下载任务队列中未执行的下载任务;
修复单元,用于对所述异常中断的下载任务进行修复,并在预设时间执行修复后的下载任务。
可选地,所述创建单元包括:
确定子单元,用于根据用户在用户界面输入的查询条件确定下载任务;
第一判断子单元,用于判断所述下载任务是否在所述下载任务队列中;
加入子单元,用于若所述下载任务不在所述下载任务队列中,则将所述下载任务加入所述下载任务队列中。
可选地,若所述下载任务在所述下载任务队列中,所述装置还包括:
判断单元,用于判断所述下载任务的执行结果;
所述提取单元,还用于若所述下载任务已执行成功,则提取所述下载任务的第二预设数量的任务特征;
查询单元,用于根据所述下载任务的第二预设数量的任务特征在所述电子设备中查询所述下载任务下载的文件的存储地址信息;
读取单元,用于根据所述存储地址信息读取所述下载任务下载的文件,并将读取到的文件推送至所述用户界面。
可选地,所述执行单元包括:
第一发送子单元,用于向服务器发送所述下载任务队列中每个下载任务的下载请求;
第一接收子单元,用于接收所述服务器根据所述下载请求发送的每个下载任务对应的下载地址信息;
第一执行子单元,用于根据所述下载地址信息按照所述下载优先级顺序依次下载所述下载任务需要下载的文件。
可选地,所述抛出单元包括:
读取子单元,用于读取所述下载任务队列中异常中断的下载任务;
第二执行子单元,用于重新执行所述异常中断的下载任务;
第二判断子单元,用于判断重新执行所述异常中断的下载任务的执行结果;
抛出子单元,用于若重新执行失败,则将所述异常中断的下载任务从所述下载任务队列中抛出。
可选地,所述修复单元包括:
第三判断子单元,用于判断所述异常中断的下载任务的异常中断类型是否为预设异常中断类型;
第二发送子单元,用于若是预设异常中断类型,则向服务器发送修复请求,其中,所述修复请求包括第三预设数量的所述异常中断的下载任务的任务特征;
第二接收子单元,用于接收服务器根据所述第三预设数量的任务特征发送的所述异常中断的下载任务对应的下载地址信息;
第三执行子单元,用于在预设时间根据所述下载地址信息重新执行所述异常中断的下载任务。
可选地,所述装置还包括:
获取单元,用于从预设时间段内的历史下载任务队列中获取第四预设数量的历史下载任务;
所述提取单元,还用于从所述第四预设数量的历史下载任务中提取出第五预设数量的历史任务特征;
计算单元,用于利用tf-idf算法计算得到所述第五预设数量的历史任务特征中每个历史任务特征的tf值和所述第四预设数量的历史下载任务中每个历史下载任务的idf值;
所述计算单元,还用于根据所述每个历史任务特征的tf值和所述每个历史下载任务的idf值计算得到所述每个历史下载任务的tf-idf值;
训练单元,用于将tf-idf值大于预设阈值的历史下载任务对应的历史任务特征输入机器学习算法中进行训练,得到下载优先级模型,所述下载优先级模型用于将所述每个下载任务的第一预设数量的任务特征进行优先级处理,得到所述每个下载任务的下载优先级顺序。
第三方面,本申请实施例提供了一种电子设备,包括处理器、存储器、通信接口,以及一个或多个程序,所述一个或多个程序被存储在所述存储器中,并且被配置由所述处理器执行,所述程序包括用于执行第一方面所述的方法中的步骤所对应的指令。
第四方面,本申请实施例提供了一种计算机可读存储介质,其中,上述计算机可读存储介质存储用于电子数据交换的计算机程序,其中,上述计算机程序使得计算机执行如本申请实施例第一方面所述的方法中所描述的部分或全部步骤。
第五方面,本申请实施例提供了一种计算机程序产品,其中,上述计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,上述计算机程序可操作来使计算机执行如本申请实施例第一方面的方法中所描述的部分或全部步骤。其中,所述计算机程序产品可以为一个软件安装包。
可以看出,本申请实施例提供的技术方案中,创建下载任务队列;提取出所述下载任务队列中每个下载任务的第一预设数量的任务特征;将所述每个下载任务的第一预设数量的任务特征进行优先级处理,得到所述每个下载任务的下载优先级顺序;根据所述下载优先级顺序执行所述下载任务队列中的下载任务;当下载发生异常中断时,将所述异常中断的下载任务从所述下载任务队列中抛出,并继续根据所述下载优先级顺序执行所述下载任务队列中未执行的下载任务;对所述异常中断的下载任务进行修复,并在预设时间执行修复后的下载任务。可见,通过实施本申请实施例,采用队列下载技术进行文件下载,有利于提高文件下载的效率。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种文件下载系统的架构示意图;
图2是本申请实施例提供的一种文件下载方法的流程示意图;
图3是本申请实施例提供的另一种文件下载方法的流程示意图;
图4是本申请实施例提供的另一种文件下载方法的流程示意图;
图5是本申请实施例提供的一种文件下载装置的功能单元组成框图;
图6是本申请实施例提供的一种电子设备的物理架构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。根据本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其他步骤或单元。
在本申请中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本申请所描述的实施例可以与其它实施例相结合。
请参阅图1,图1是本申请实施例提供的一种文件下载系统的架构示意图。如图1所示,所述文件下载系统包括电子设备101、网络102和服务器103。
其中,所述电子设备101包括但不限于带通讯功能的设备、智能手机、平板电脑、笔记本电脑、台式电脑、便携式数字播放器、智能摄像机等。
其中,所述服务器103包括但不限于传统服务器、大型存储系统、台式电脑、笔记本电脑、平板电脑、掌上电脑、智能手机、便携式数字播放器、智能手表以及智能手环等。
其中,需要指出的是,所述电子设备101包括用户界面,用户可以根据需求在所述用户界面上输入相应的查询条件;所述电子设备101可以根据不同的查询条件确定不同的下载任务,将所述下载任务组建成下载任务队列;而后,所述电子设备101将所述每个下载任务的下载请求向服务器103发送;所述服务器103可以接收电子设备101发送的下载请求,并根据接收到的下载请求查询到所述下载请求对应的下载地址信息;再后,所述服务器103向所述电子设备101发送所述下载地址信息,所述下载地址信息用于所述电子设备101下载所述下载请求需要下载的文件;最后,所述电子设备101接收所述服务器103发送的下载地址信息,并可以按照一定的优先级顺序依次根据所述下载地址信息下载用户需要的文件。
而对于所述电子设备101和所述服务器103之间进行交互的为网络102,可以包括多种类型的有线或无线网络。在一实施例中,该网络102可以包括公共交换电话网络(publicswitchedtelephonenetwork,pstn)和因特网。当然,本申请实施例并不对此进行限制。
请参阅图2,图2是本申请实施例提供的一种文件下载方法的流程示意图。如图2所示,所述方法应用于电子设备,所述方法包括:
s201、电子设备创建下载任务队列。
其中,电子设备创建下载任务队列包括:所述电子设备根据用户在用户界面输入的查询条件确定下载任务;所述电子设备判断所述下载任务是否在所述下载任务队列中;若所述下载任务不在所述下载任务队列中,所述电子设备则将所述下载任务加入所述下载任务队列中。
其中,在首次创建下载任务队列时,用户可以根据不同的需求同时确定多个下载任务,将这些下载任务组成为下载任务队列。而后,用户可以将新的需求的下载任务加入至已有的下载任务队列中,从而创建新的下载任务队列。
举例来说,用户通过前端界面发起文件下载的请求,也即用户根据需求选择查询条件,根据查询条件查询到需要的文件,然后点击执行下载所述需要的文件;亦或者用户直接点击下载所述需要的文件,生成下载所述需要的文件的下载任务。电子设备判断所述需要的文件是否是首次下载,如果是首次下载,则将所述需要的文件的下载任务加入到已有的下载任务队列中。
s202、所述电子设备提取出所述下载任务队列中每个下载任务的第一预设数量的任务特征。
其中,所述下载任务的任务特征包括:下载任务确定顺序、下载文件大小、下载文件的名称、下载文件类型、下载网页窗口打开顺序、下载网页窗口停留时间、同一下载网页窗口滚屏先后顺序、下载任务在历史下载任务队列出现的频率等。
s203、所述电子设备将所述每个下载任务的第一预设数量的任务特征进行优先级处理,得到所述每个下载任务的下载优先级顺序。
其中,所述电子设备将所述每个下载任务的第一预设数量的任务特征进行优先级处理,得到所述每个下载任务的下载优先级顺序,包括:所述电子设备将所述每个下载任务的第一预设数量的任务特征输入下载优先级模型中,得到所述每个下载任务的下载优先级顺序。
其中,需要指出的是,所述下载优先级模型是预先通过将历史下载任务的任务特征输入机械学习算法进行训练得到的,所述机械学习算法可以包括分类算法,监督学习算法,贝叶斯算法等。
其中,可以理解的是,针对不同业务需求,用户也可以手动设置下载优先级顺序,从而手动调整优先下载的文件。其中,用户可以在创建下载任务队列时,根据需求设定不同下载任务的下载优先级顺序;亦可以在下载任务已经执行时,根据需求随时调整下载任务的下载优先级顺序。
举例来说,用户在启动多个下载任务时,电子设备可以根据需求给每个下载任务设定特定的优先级顺序,或者用户也可以根据需求手动设定每个下载任务的下载优先级顺序,电子设备根据该优先级逐个执行下载任务队列中的下载任务。当用户有需要紧急下载的文件时,也即有需要紧急执行的下载任务加入至任务队列中时,用户可以手动中断当前下载任务队列中正在执行的下载任务,将紧急的下载任务优先执行,而后继续执行中断的下载任务,最后再按原有的优先级顺序逐个执行下载任务队列中的下载任务。
s204、所述电子设备根据所述下载优先级顺序执行所述下载任务队列中的下载任务。
其中,所述电子设备根据所述下载优先级顺序执行所述下载任务队列中的下载任务包括:所述电子设备根据所述下载优先级顺序读取所述下载任务队列中未开始执行的下载任务;执行所述读取到的下载任务;判断所述读取到的下载任务的执行状态;若所述读取到的下载任务执行成功,则更新所述读取到的下载任务的文件下载状态。
其中,当所述每个下载任务的所需要下载的文件下载完成之后,所述方法还包括:所述电子设备将下载完成的文件进行逐位复制以得到所述文件的备份,固定所述数据的备份的存储状态。
其中,需要指出的是,将所述每个下载任务下载完成的文件进行备份存储(也即数据历史固化)后,当用户需要再次获取所述文件时,不需要重复下载,所述电子设备直接将历史固化的文件直接向用户界面推送。另外,当下载任务完成后,推送至用户的文件可以是下载完成的原始文件,也可以是历史固化后的文件。
其中,可以理解的是,若所述读取到的下载任务执行失败,则确定所述读取到的下载任务为异常中断的下载任务。
s205、当下载发生异常中断时,所述电子设备将所述异常中断的下载任务从所述下载任务队列中抛出,并继续根据所述下载优先级顺序执行所述下载任务队列中未执行的下载任务。
其中,所述将所述异常中断的下载任务从所述下载任务队列中抛出包括:所述电子设备读取所述下载任务队列中异常中断的下载任务;所述电子设备重新执行所述异常中断的下载任务;所述电子设备判断重新执行所述异常中断的下载任务的执行结果;若重新执行失败,所述电子设备则将所述异常中断的下载任务从所述下载任务队列中抛出。
其中,可以理解的是,当某个下载任务执行发生中断时,所述电子设备可以读取所述发生中断的下载任务,重新执行一次,如果所述发生中断的下载任务重新执行成功,则更新所述发生中断的下载任务的文件下载状态,说明所述发生中断的下载任务不是异常中断。另外,所述将所述异常中断的下载任务从所述下载任务队列中抛出也可以包括:当某个下载任务执行发生中断时,直接将所述发生中断的下载任务从所述下载任务队列中抛出。
s206、所述电子设备对所述异常中断的下载任务进行修复,并在预设时间执行修复后的下载任务。
其中,所述电子设备对所述异常中断的下载任务进行修复包括:所述电子设备判断所述异常中断的下载任务已经下载的文件的大小;根据所述已经下载的文件的大小确定继续下载的下载位置。
举例来说,当下载发生异常中断时,电子设备可以判断发生异常中断的下载任务已经下载文件的大小,并将所述已经下载的文件大小反馈给服务器,然后服务器会根据已经下载文件的大小将指针移动到相应的下载位置,电子设备继续执行下载,而后将下载完成的文件推送给用户界面。
另外,本申请实施例的相关术语或解释可参考上述实施例描述的内容。
可以看出,本申请实施例提供的技术方案中,创建下载任务队列;提取出所述下载任务队列中每个下载任务的第一预设数量的任务特征;将所述每个下载任务的第一预设数量的任务特征进行优先级处理,得到所述每个下载任务的下载优先级顺序;根据所述下载优先级顺序执行所述下载任务队列中的下载任务;当下载发生异常中断时,将所述异常中断的下载任务从所述下载任务队列中抛出,并继续根据所述下载优先级顺序执行所述下载任务队列中未执行的下载任务;对所述异常中断的下载任务进行修复,并在预设时间执行修复后的下载任务。可见,通过实施本申请实施例,采用队列下载技术进行文件下载,有利于提高文件下载的效率。
请参阅图3,图3是本申请实施例提供的另一种文件下载方法的流程示意图。如图3所示,所述方法应用于电子设备,所述方法包括:
s301、电子设备创建下载任务队列。
s302、所述电子设备提取出所述下载任务队列中每个下载任务的第一预设数量的任务特征。
其中,所述任务特征包括:下载任务确定顺序、下载文件大小、下载文件的名称、下载文件类型、下载网页窗口打开顺序、下载网页窗口停留时间、同一下载网页窗口滚屏先后顺序、下载任务在历史下载任务队列出现的频率等。
s303、所述电子设备从预设时间段内的历史下载任务队列中获取第四预设数量的历史下载任务。
s304、所述电子设备从所述第四预设数量的历史下载任务中提取出第五预设数量的历史任务特征。
s305、所述电子设备利用tf-idf算法计算得到所述第五预设数量的历史任务特征中每个历史任务特征的tf值和所述第四预设数量的历史下载任务中每个历史下载任务的idf值;根据所述每个历史任务特征的tf值和所述每个历史下载任务的idf值计算得到所述每个历史下载任务的tf-idf值。
其中,tf-idf(termfrequency–inversedocumentfrequency)是一种用于数据检索与数据挖掘的常用加权技术。tf的意思是词频(termfrequency),idf的意思是逆文本频率指数(inversedocumentfrequency)。tf-idf是一种统计方法,用于评估一字词对于一个文件集或一个语料库中的其中一份文件的重要程度。其中,字词的重要性随着它在文件中出现的次数成正比增加。
其中,tf、idf和tf-idf的计算公式如下:
tf-idf=tf×idf(3)
s306、所述电子设备将tf-idf值大于预设阈值的历史下载任务对应的历史任务特征输入机器学习算法中进行训练,得到下载优先级模型。
其中,所述机械学习算法可以包括分类算法,监督学习算法,贝叶斯算法等。
s307、所述电子设备将所述每个下载任务的第一预设数量的任务特征输入所述下载优先级模型中,得到所述每个下载任务的下载优先级顺序。
其中,所述电子设备将所述每个下载任务的第一预设数量的任务特征输入所述下载优先级模型中,得到所述每个下载任务的下载优先级顺序,包括:所述电子设备利用tf-idf算法将所述每个下载任务的第一预设数量的任务特征进行向量表示,得到每个下载任务的第一预设数量的任务特征向量;对所述每个下载任务对应的所有任务特征向量进行求和,得到所述每个下载任务的任务特征合向量;计算所述每个任务特征向量的tf值,以及计算所述每个任务特征合向量的idf值;根据所述每个下载任务对应的所有任务特征向量的tf值和所述每个下载任务的任务特征合向量的idf值计算得到所述每个下载任务的tf-idf值;根据tf-idf值由大到小对所述每个下载任务进行排序,得到所述每个下载任务的下载优先级顺序。
s308、所述电子设备向服务器发送所述下载任务队列中每个下载任务的下载请求。
其中,所述下载请求可以包括所述每个下载任务的任务特征,用于所述服务器根据所述任务特征查找相应的下载地址信息。
s309、所述电子设备接收所述服务器根据所述下载请求发送的每个下载任务对应的下载地址信息。
s310、所述电子设备根据所述下载地址信息按照所述下载优先级顺序依次下载所述下载任务需要下载的文件。
s311、当下载发生异常中断时,所述电子设备将所述异常中断的下载任务从所述下载任务队列中抛出,并继续根据所述下载优先级顺序执行所述下载任务队列中未执行的下载任务。
其中,所述电子设备将所述异常中断的下载任务从所述下载任务队列中抛出包括:所述电子设备读取所述下载任务队列中异常中断的下载任务;所述电子设备重新执行所述异常中断的下载任务;所述电子设备判断重新执行所述异常中断的下载任务的执行结果;若重新执行失败,所述电子设备则将所述异常中断的下载任务从所述下载任务队列中抛出。
s312、所述电子设备对所述异常中断的下载任务进行修复,并在预设时间执行修复后的下载任务。
其中,所述对所述异常中断的下载任务进行修复,并在预设时间执行修复后的下载任务包括:所述电子设备判断所述异常中断的下载任务的异常中断类型是否为预设异常中断类型;若是预设异常中断类型,所述电子设备则向服务器发送修复请求,其中,所述修复请求包括第三预设数量的所述异常中断的下载任务的任务特征;所述电子设备接收服务器根据所述第三预设数量的任务特征发送的所述异常中断的下载任务对应的下载地址信息;所述电子设备在预设时间根据所述下载地址信息重新执行所述异常中断的下载任务。
另外,本申请实施例的相关术语或解释可参考上述实施例描述的内容。
可以看出,本申请实施例提供的技术方案中,采用tf-idf计算得到历史下载任务队列中的下载任务的tf-idf,将tf-idf大于预设阈值的历史下载任务的任务特征输入机械学习算法中进行训练,得到下载优先级模型用于识别新创建的下载任务队列中的下载任务的优先级顺序,而后按照优先级顺序下载文件。可见,通过实施本申请实施例,电子设备自动设定优先级顺序执行下载队列中的下载任务,有利于进一步提高文件下载的效率。
请参阅图4,图4是本申请实施例提供的另一种文件下载方法的流程示意图。如图4所示,所述方法应用于电子设备,所述方法包括:
s401、电子设备根据用户在用户界面输入的查询条件确定下载任务。
例如,所述用户在所述电子设备的用户界面上输入“哪吒之魔童降世”,所述电子设备根据字符确定下载电影《哪吒之魔童降世》的mp4影像文件的下载任务。
s402、所述电子设备判断所述下载任务是否在下载队列中。
其中,需要说明的是,所述判断所述下载任务是否在下载任务队列中包括:判断所述下载任务是否在当前的下载任务队列中;或者,判断所述下载任务是否在历史下载任务队列。
s403、若所述下载任务在所述下载任务队列中,所述电子设备判断所述下载任务的执行结果。
s404、若所述下载任务未执行完成,所述电子设备等待所述下载任务的执行结果。
其中,可以理解的是,所述电子设备在第一次判断到所述下载任务未执行完成,所述电子设备等待所述下载任务的执行结果;在预设时间后,所述电子设备再次判断所述下载任务的执行结果,若所述下载任务仍然未执行完成,则继续等待所述下载任务的执行结果,预设时间后再次判断,直至所述下载任务执行完成。
s405、若所述下载任务已执行完成,所述电子设备将从服务器下载完成的文件推送至用户界面。
其中,若所述下载任务已执行完成,所述电子设备将从服务器下载完成的文件推送至用户界面包括:所述电子设备则提取所述下载任务的第二预设数量的任务特征;所述电子设备根据所述下载任务的第二预设数量的任务特征在所述电子设备中查询所述下载任务下载的文件的存储地址信息;所述电子设备根据所述存储地址信息读取所述下载任务下载的文件,并将读取到的文件推送至所述用户界面。
其中,可以理解的是,若首次判断到所述下载任务未执行完成,则所述推送至用户界面的文件是等待所述下载任务下载完成的原始文件;若首次判断到所述下载任务已执行完成,则所述推送至用户界面的文件是历史固化的文件。
其中,所述将读取到的文件推送至用户界面包括:判断所述下载任务下载的文件的数据类型;根据所述文件类型选择传输通道将所述文件推送至用户界面。
s406、若所述下载任务不在所述下载任务队列中,所述电子设备将所述下载任务加入下载任务队列中。
s407、所述电子设备读取所述下载任务队列中未执行的下载任务。
其中,所述读取下载任务队列中未执行的下载任务根据预设优先级顺序进行读取,所述电子设备所述读取下载任务队列中未执行的下载任务包括:所述电子设备根据下载任务创建的时间顺序读取所述下载任务队列中未执行的下载任务;或所述电子设备根据下载任务所要下载的文件大小顺序读取所述下载任务队列中未执行的下载任务;或所述电子设备根据下载任务网页窗口打开的先后顺序读取所述下载任务队列中未执行的下载任务;或所述电子设备根据用户在下载任务网页窗口停留时间的长短读取所述下载任务队列中未执行的下载任务;或所述电子设备根据同一下载任务网页窗口的不同区域的先后滚屏顺序读取所述下载任务队列中未执行的下载任务;或所述电子设备根据下载任务在历史下载任务队列出现的频率读取所述下载任务队列中未执行的下载任务。
举例来说,所述预设优先级顺序的确定依据可以是:基于创建时间顺序确定所述各下载任务的优先级顺序,其中创建时间越后的下载任务优先级越高;基于历史下载任务队列确定各下载任务的优先级顺序,其中下载任务队列中出现越多的下载任务优先级越高;基于文件的大小确定优先级顺序,其中文件越小或者文件越大的下载任务优先级越高;基于网页窗口的打开先后顺序确定所述各下载任务的优先级顺序,其中越后打开的网页窗口的下载任务优先级越高;基于用户在网页窗口的停留时间确定所述各下载任务的优先级顺序,其中在网页窗口的停留时间越长的下载任务优先级越高;基于同一网页窗口的不同区域的先后滚屏顺序确定各下载任务的优先级顺序,其中越后滚屏的区域的下载任务优先级越高。其中,需要指出的是,所述优先级还可以通过其他依据确定,本申请对此不作限定。
另外,需要指出的是,所述电子设备读取所述下载任务队列中未执行的下载任务还可以包括:所述电子设备提取出所述下载任务队列中每个下载任务的第一预设数量的任务特征;所述电子设备将所述每个下载任务的第一预设数量的任务特征输入预先训练好的下载优先级模型中,得到所述每个下载任务的下载优先级顺序;所述电子设备根据所述下载优先级顺序读取所述下载任务队列中未执行的下载任务。
s408、所述电子设备执行读取到的下载任务的下载操作。
其中,所述电子设备执行读取到的下载任务的下载操作包括:所述电子设备向服务器发送所述读取到的下载任务的下载请求;所述电子设备接收所述服务器根据所述下载请求发送的读取到的下载任务对应的下载地址信息;所述电子设备根据所述下载地址信息下载所述读取到的下载任务需要下载的文件。
s409、所述电子设备判断所述读取到的下载任务的执行结果。
s410、若执行失败,所述电子设备将异常中断的下载任务抛出。
其中,可以理解的是,若执行失败,所述电子设备将异常中断的下载任务抛出后,按照优先级顺序继续执行下载任务队列中未执行的下载任务;若执行成功,则更新所述读取到的下载任务的执行状态,下载得到用户需要的文件,而后推送至用户界面,再按照优先级顺序继续执行下载任务队列中未执行的下载任务。
s411、所述电子设备对异常中断的下载任务进行修复。
其中,所述电子设备对异常中断的下载任务进行修复包括:所述电子设备判断所述异常中断的下载任务的异常中断类型是否为预设异常中断类型;若是预设异常中断类型,所述电子设备则向服务器发送修复请求,其中,所述修复请求包括第三预设数量的所述异常中断的下载任务的任务特征;所述电子设备接收服务器根据所述第三预设数量的任务特征发送的所述异常中断的下载任务对应的下载地址信息。
s412、所述电子设备判断是否继续执行修复后的下载任务。
其中,若继续执行修复后的下载任务,则所述电子设备在预设时间根据所述异常中断的下载任务对应的下载地址信息重新执行所述异常中断的下载任务。
s413、所述电子设备更新所述修复后的下载任务的下载状态。
另外,本申请实施例的相关术语或解释可参考上述实施例描述的内容。
可以看出,本申请实施例提供的技术方案中,通过历史下载的文件做历史固化,当再次下载相关范围的文件时不必每次都对服务器进行反复的查询处理,直接从历史固化的文件中提取;并且,将下载过程中发生异常中断的下载任务抛出,定时修复再次下载,无需人物修复,从而减少了服务器的压力,再进一步提高了文件下载效率。
上述主要从方法侧执行过程的角度对本申请实施例的方案进行了介绍。可以理解的是,电子设备为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件单元。本领域技术人员应该很容易意识到,结合本申请中所提供的实施例描述的各示例的单元及算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本申请实施例可以根据上述方法示例对电子设备进行功能单元的划分,例如,可以对应各个功能划分各个功能单元,也可以将两个或两个以上的功能集成在一个处理单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。需要说明的是,本申请实施例中对单元的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
请参阅图5,图5是本申请实施例中所涉及的一种文件下载装置的功能单元组成框图。如图5所示,所述文件下载装置500应用于电子设备,且所述文件下载装置500包括以下逻辑单元:
创建单元501,用于创建下载任务队列;
提取单元502,用于提取出所述下载任务队列中每个下载任务的第一预设数量的任务特征;
处理单元503,用于将所述每个下载任务的第一预设数量的任务特征进行优先级处理,得到所述每个下载任务的下载优先级顺序;
执行单元504,用于根据所述下载优先级顺序执行所述下载任务队列中的下载任务;
抛出单元505,用于当下载发生异常中断时,将所述异常中断的下载任务从所述下载任务队列中抛出,并继续根据所述下载优先级顺序执行所述下载任务队列中未执行的下载任务;
修复单元506,用于对所述异常中断的下载任务进行修复,并在预设时间执行修复后的下载任务。
可选地,所述创建单元501包括:
确定子单元,用于根据用户在用户界面输入的查询条件确定下载任务;
第一判断子单元,用于判断所述下载任务是否在所述下载任务队列中;
加入子单元,用于若所述下载任务不在所述下载任务队列中,则将所述下载任务加入所述下载任务队列中。
可选地,若所述下载任务在所述下载任务队列中,所述装置500还包括:
判断单元,用于判断所述下载任务的执行结果;
所述提取单元,还用于若所述下载任务已执行成功,则提取所述下载任务的第二预设数量的任务特征;
查询单元,用于根据所述下载任务的第二预设数量的任务特征在所述电子设备中查询所述下载任务下载的文件的存储地址信息;
读取单元,用于根据所述存储地址信息读取所述下载任务下载的文件,并将读取到的文件推送至所述用户界面。
可选地,所述执行单元包括:
第一发送子单元,用于向服务器发送所述下载任务队列中每个下载任务的下载请求;
第一接收子单元,用于接收所述服务器根据所述下载请求发送的每个下载任务对应的下载地址信息;
第一执行子单元,用于根据所述下载地址信息按照所述下载优先级顺序依次下载所述下载任务需要下载的文件。
可选地,所述抛出单元505包括:
读取子单元,用于读取所述下载任务队列中异常中断的下载任务;
第二执行子单元,用于重新执行所述异常中断的下载任务;
第二判断子单元,用于判断重新执行所述异常中断的下载任务的执行结果;
抛出子单元,用于若重新执行失败,则将所述异常中断的下载任务从所述下载任务队列中抛出。
可选地,所述修复单元506包括:
第三判断子单元,用于判断所述异常中断的下载任务的异常中断类型是否为预设异常中断类型;
第二发送子单元,用于若是预设异常中断类型,则向服务器发送修复请求,其中,所述修复请求包括第三预设数量的所述异常中断的下载任务的任务特征;
第二接收子单元,用于接收服务器根据所述第三预设数量的任务特征发送的所述异常中断的下载任务对应的下载地址信息;
第三执行子单元,用于在预设时间根据所述下载地址信息重新执行所述异常中断的下载任务。
可选地,所述装置500还包括:
获取单元,用于从预设时间段内的历史下载任务队列中获取第四预设数量的历史下载任务;
所述提取单元,还用于从所述第四预设数量的历史下载任务中提取出第五预设数量的历史任务特征;
计算单元,用于利用tf-idf算法计算得到所述第五预设数量的历史任务特征中每个历史任务特征的tf值和所述第四预设数量的历史下载任务中每个历史下载任务的idf值;
所述计算单元,还用于根据所述每个历史任务特征的tf值和所述每个历史下载任务的idf值计算得到所述每个历史下载任务的tf-idf值;
训练单元,用于将tf-idf值大于预设阈值的历史下载任务对应的历史任务特征输入机器学习算法中进行训练,得到下载优先级模型,所述下载优先级模型用于将所述每个下载任务的第一预设数量的任务特征进行优先级处理,得到所述每个下载任务的下载优先级顺序。
可以看出,本申请实施例提供的文件下载装置,创建下载任务队列;提取出所述下载任务队列中每个下载任务的第一预设数量的任务特征;将所述每个下载任务的第一预设数量的任务特征进行优先级处理,得到所述每个下载任务的下载优先级顺序;根据所述下载优先级顺序执行所述下载任务队列中的下载任务;当下载发生异常中断时,将所述异常中断的下载任务从所述下载任务队列中抛出,并继续根据所述下载优先级顺序执行所述下载任务队列中未执行的下载任务;对所述异常中断的下载任务进行修复,并在预设时间执行修复后的下载任务。可见,通过实施本申请实施例,采用队列下载技术进行文件下载,有利于提高文件下载的效率。
与上述图5所示的实施例一致的,请参阅图6,图6是本申请实施例提供的一种电子设备600的结构示意图。如图6所示,所述电子设备600包括应用处理器610、存储器620、通信接口630以及一个或多个程序621,其中,所述一个或多个程序621被存储在上述存储器620中,并且被配置由上述应用处理器610执行,当所述一个或多个程序621被运行时,所述处理器610执行以下操作:创建下载任务队列;提取出所述下载任务队列中每个下载任务的第一预设数量的任务特征;将所述每个下载任务的第一预设数量的任务特征进行优先级处理,得到所述每个下载任务的下载优先级顺序;根据所述下载优先级顺序执行所述下载任务队列中的下载任务;当下载发生异常中断时,将所述异常中断的下载任务从所述下载任务队列中抛出,并继续根据所述下载优先级顺序执行所述下载任务队列中未执行的下载任务;对所述异常中断的下载任务进行修复,并在预设时间执行修复后的下载任务。
可选地,所述处理器610还执行以下操作:根据用户在用户界面输入的查询条件确定下载任务;判断所述下载任务是否在所述下载任务队列中;若所述下载任务不在所述下载任务队列中,则将所述下载任务加入所述下载任务队列中。
可选地,若所述下载任务在所述下载任务队列中,所述处理器610还执行以下操作:判断所述下载任务的执行结果;若所述下载任务已执行成功,则提取所述下载任务的第二预设数量的任务特征;根据所述下载任务的第二预设数量的任务特征在所述电子设备中查询所述下载任务下载的文件的存储地址信息;根据所述存储地址信息读取所述下载任务下载的文件,并将读取到的文件推送至所述用户界面。
可选地,所述处理器610还执行以下操作:向服务器发送所述下载任务队列中每个下载任务的下载请求;接收所述服务器根据所述下载请求发送的每个下载任务对应的下载地址信息;根据所述下载地址信息按照所述下载优先级顺序依次下载所述下载任务需要下载的文件。
可选地,所述处理器610还执行以下操作:读取所述下载任务队列中异常中断的下载任务;重新执行所述异常中断的下载任务;判断重新执行所述异常中断的下载任务的执行结果;若重新执行失败,则将所述异常中断的下载任务从所述下载任务队列中抛出。
可选地,所述处理器610还执行以下操作:判断所述异常中断的下载任务的异常中断类型是否为预设异常中断类型;若是预设异常中断类型,则向服务器发送修复请求,其中,所述修复请求包括第三预设数量的所述异常中断的下载任务的任务特征;接收服务器根据所述第三预设数量的任务特征发送的所述异常中断的下载任务对应的下载地址信息;在预设时间根据所述下载地址信息重新执行所述异常中断的下载任务。
可选地,在将所述每个下载任务的任务特征进行优先级处理之前,所述处理器610还执行以下操作:从预设时间段内的历史下载任务队列中获取第四预设数量的历史下载任务;从所述第四预设数量的历史下载任务中提取出第五预设数量的历史任务特征;利用tf-idf算法计算得到所述第五预设数量的历史任务特征中每个历史任务特征的tf值和所述第四预设数量的历史下载任务中每个历史下载任务的idf值;根据所述每个历史任务特征的tf值和所述每个历史下载任务的idf值计算得到所述每个历史下载任务的tf-idf值;将tf-idf值大于预设阈值的历史下载任务对应的历史任务特征输入机器学习算法中进行训练,得到下载优先级模型,所述下载优先级模型用于将所述每个下载任务的第一预设数量的任务特征进行优先级处理,得到所述每个下载任务的下载优先级顺序。
可以看出,本申请实施例提供的电子设备,创建下载任务队列;提取出所述下载任务队列中每个下载任务的第一预设数量的任务特征;将所述每个下载任务的第一预设数量的任务特征进行优先级处理,得到所述每个下载任务的下载优先级顺序;根据所述下载优先级顺序执行所述下载任务队列中的下载任务;当下载发生异常中断时,将所述异常中断的下载任务从所述下载任务队列中抛出,并继续根据所述下载优先级顺序执行所述下载任务队列中未执行的下载任务;对所述异常中断的下载任务进行修复,并在预设时间执行修复后的下载任务。可见,通过实施本申请实施例,采用队列下载技术进行文件下载,有利于提高文件下载的效率。
本申请实施例还提供一种计算机存储介质,其中,该计算机存储介质存储用于电子数据交换的计算机程序,该计算机程序使得计算机执行如上述方法实施例中记载的任一方法的部分或全部步骤,上述计算机包括电子设备。
本申请实施例还提供一种计算机程序产品,上述计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,上述计算机程序可操作来使计算机执行如上述方法实施例中记载的任一方法的部分或全部步骤。该计算机程序产品可以为一个软件安装包,上述计算机包括电子设备。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和单元并不一定是本申请所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置,可通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如上述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性或其它的形式。
上述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
上述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储器中。根据这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储器中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例上述方法的全部或部分步骤。而前述的存储器包括:u盘、只读存储器(rom,reap-onlymemory)、随机存取存储器(ram,ranpomaccessmemory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储器中,存储器可以包括:闪存盘、只读存储器(英文:reap-onlymemory,简称:rom)、随机存取器(英文:ranpomaccessmemory,简称:ram)、磁盘或光盘等。
以上对本申请实施例进行了详细介绍,本申请中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
1.一种文件下载方法,其特征在于,应用于电子设备,所述方法包括:
创建下载任务队列;
提取出所述下载任务队列中每个下载任务的第一预设数量的任务特征;
将所述每个下载任务的第一预设数量的任务特征进行优先级处理,得到所述每个下载任务的下载优先级顺序;
根据所述下载优先级顺序执行所述下载任务队列中的下载任务;
当下载发生异常中断时,将所述异常中断的下载任务从所述下载任务队列中抛出,并继续根据所述下载优先级顺序执行所述下载任务队列中未执行的下载任务;
对所述异常中断的下载任务进行修复,并在预设时间执行修复后的下载任务。
2.根据权利要求1所述的方法,其特征在于,所述创建下载任务队列包括:
根据用户在用户界面输入的查询条件确定下载任务;
判断所述下载任务是否在所述下载任务队列中;
若所述下载任务不在所述下载任务队列中,则将所述下载任务加入所述下载任务队列中。
3.根据权利要求2所述的方法,其特征在于,若所述下载任务在所述下载任务队列中,所述方法还包括:
判断所述下载任务的执行结果;
若所述下载任务已执行成功,则提取所述下载任务的第二预设数量的任务特征;
根据所述下载任务的第二预设数量的任务特征在所述电子设备中查询所述下载任务下载的文件的存储地址信息;
根据所述存储地址信息读取所述下载任务下载的文件,并将读取到的文件推送至所述用户界面。
4.根据权利要求1所述的方法,其特征在于,所述根据所述下载优先级顺序执行所述下载任务队列中的下载任务包括:
向服务器发送所述下载任务队列中每个下载任务的下载请求;
接收所述服务器根据所述下载请求发送的每个下载任务对应的下载地址信息;
根据所述下载地址信息按照所述下载优先级顺序依次下载所述下载任务需要下载的文件。
5.根据权利要求1所述的方法,其特征在于,所述将所述异常中断的下载任务从所述下载任务队列中抛出包括:
读取所述下载任务队列中异常中断的下载任务;
重新执行所述异常中断的下载任务;
判断重新执行所述异常中断的下载任务的执行结果;
若重新执行失败,则将所述异常中断的下载任务从所述下载任务队列中抛出。
6.根据权利要求1所述的方法,其特征在于,所述对所述异常中断的下载任务进行修复,并在预设时间执行修复后的下载任务包括:
判断所述异常中断的下载任务的异常中断类型是否为预设异常中断类型;
若是预设异常中断类型,则向服务器发送修复请求,其中,所述修复请求包括第三预设数量的所述异常中断的下载任务的任务特征;
接收服务器根据所述第三预设数量的任务特征发送的所述异常中断的下载任务对应的下载地址信息;
在预设时间根据所述下载地址信息重新执行所述异常中断的下载任务。
7.根据权利要求1-6任一项所述的方法,其特征在于,在将所述每个下载任务的任务特征进行优先级处理之前,所述方法还包括:
从预设时间段内的历史下载任务队列中获取第四预设数量的历史下载任务;
从所述第四预设数量的历史下载任务中提取出第五预设数量的历史任务特征;
利用tf-idf算法计算得到所述第五预设数量的历史任务特征中每个历史任务特征的tf值和所述第四预设数量的历史下载任务中每个历史下载任务的idf值;
根据所述每个历史任务特征的tf值和所述每个历史下载任务的idf值计算得到所述每个历史下载任务的tf-idf值;
将tf-idf值大于预设阈值的历史下载任务对应的历史任务特征输入机器学习算法中进行训练,得到下载优先级模型,所述下载优先级模型用于将所述每个下载任务的第一预设数量的任务特征进行优先级处理,得到所述每个下载任务的下载优先级顺序。
8.一种文件下载装置,其特征在于,应用于电子设备,所述装置包括:
创建单元,用于创建下载任务队列;
提取单元,用于提取出所述下载任务队列中每个下载任务的第一预设数量的任务特征;
处理单元,用于将所述每个下载任务的第一预设数量的任务特征进行优先级处理,得到所述每个下载任务的下载优先级顺序;
执行单元,用于根据所述下载优先级顺序执行所述下载任务队列中的下载任务;
抛出单元,用于当下载发生异常中断时,将所述异常中断的下载任务从所述下载任务队列中抛出,并继续根据所述下载优先级顺序执行所述下载任务队列中未执行的下载任务;
修复单元,用于对所述异常中断的下载任务进行修复,并在预设时间执行修复后的下载任务。
9.一种电子设备,其特征在于,所述电子设备包括处理器及存储器,所述处理器用于执行存储器中存储的计算机程序时实现如权利要求1-7中任一项所述方法中的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-7中任一项所述方法中的步骤。
技术总结