[发明专利]一种基于TPL资源初始化下载方法及装置在审
申请号: | 202110069101.4 | 申请日: | 2021-01-19 |
公开(公告)号: | CN112395094A | 公开(公告)日: | 2021-02-23 |
发明(设计)人: | 蒋洪庆;陈生林;江波;张武松;董照阳;戈宇 | 申请(专利权)人: | 成都四方伟业软件股份有限公司 |
主分类号: | G06F9/50 | 分类号: | G06F9/50;H04L29/08 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 610041 四川省*** | 国省代码: | 四川;51 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 tpl 资源 初始化 下载 方法 装置 | ||
本发明公开了一种基于TPL资源初始化下载方法及装置,主要解决现有资源下载方法中采用串行下载使整体的下载效率低的问题。该一种基于TPL资源初始化下载方法及装置主要是依托于TPL,用异步,并行的方式,充分利用目前硬件设备多线多核的优势,以及实现网络传输,硬盘读写的并行执行。从整体上提高了程序初始化阶段资源的下载速度。通过上述方案,本发明达到了高下载效率的目的,具有很高的实用价值和推广价值。
技术领域
本发明涉及资源下载领域,具体地说,是涉及一种基于TPL资源初始化下载方法及装置。
背景技术
现有的资源下载通用方法是:当有下载需求时,首先检查当前是否正在下载其它资源,如果没有,就启一个线程下载当前任务,如果已有下载,就将下载任务丢进下载队列等待。在下载线程中通过http向服务器请求资源下载,等待下载完成;当下载完成后,将资源存储到相应的目录中,完成单个下载任务;然后再检查下载队列中是否还有下载任务在等待,如果有就再取一个,继续下载,如果没有就退出;现有的资源下载方法存在的问题如下:
1、现有下载方案虽然开启了独立线程执行下载任务,但当有多个下载任务存在时,需要放入下载队列等待,相当于多个任务是串行执行,并没有利用多线的方式实现并行,整体下载效率比较低下。
2、现有技术从服务器下载,以及下载完后存储文件,都是同步串行方式,所以总的下载时间是两者之合,网络下载和磁盘IO操作又都是非常耗时的,影响整体下载效率。
发明内容
本发明的目的在于提供一种基于TPL资源初始化下载方法及装置,以解决现有资源下载方法中采用串行下载使整体的下载效率低的问题。
为了解决上述问题,本发明提供如下技术方案:
一种基于TPL资源初始化下载方法包括以下步骤:
S1、准备资源下载列表,根据资源下载列表判断下载任务数是否小于最大下载任务数,是则执行步骤S2,否则放入等待队列;
S2、启动一个异步下载任务,放入下载队列,然后向服务器请求异步下载,等待下载结果,再然后判断是否下载成功,是则执行步骤S3,否则执行步骤S4;
S3、对下载的文件进行MD5校验,判断校验是否成功,是则执行步骤S5,否则执行步骤S4;
S4、判断现有资源下载重试次数是否小于最大重试数,是则重新排队到等待队列队尾,等待重新下载,否则结束下载任务;
S5、判断下载的文件是否是压缩格式,是则对该文件进行解压存储并移除已下载的该资源项,否则直接存储;
S6、重复步骤S1至S5至完成全部资源下载列表项的下载。
通过上述方案本发明将下载的资源项分别放入下载队列和等待队列,启动异步下载任务,在文件解压时又启动另一个异步任务,这种采用多线异步方式,在可控的任务数下,尽量多的开启多个异步下载任务,充分的利用线程池,动态的去执行下载任务,达到下载任务并发的目的,提升整体资源下载效率。
进一步的,步骤S1中资源下载列表准备的具体过程如下:
S101、登录程序,通过HTTP向服务器请求最新的资源列表;
S102、迭代资源列表,取出一个资源信息,根据资源ID,查找本地文件系统,判断其是否已经存在对应资源,是则执行步骤S103,否则将该资源信息放入下载队列中;
S103、读取本地资源版本文件,比较服务器版本号是否相等,是则不做任何操作,否则将该资源信息放入下载队列中;
S104、重复步骤S102和S103至完成资源列表中所有资源信息的迭代。
通过上述方案获得迭代过滤后形成的需要下载的资源信息列表。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于成都四方伟业软件股份有限公司,未经成都四方伟业软件股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110069101.4/2.html,转载请声明来源钻瓜专利网。