[发明专利]一种文件下载方法、装置、设备及介质有效
申请号: | 201910982645.2 | 申请日: | 2019-10-16 |
公开(公告)号: | CN112671816B | 公开(公告)日: | 2022-07-22 |
发明(设计)人: | 赵安元 | 申请(专利权)人: | 腾讯科技(深圳)有限公司 |
主分类号: | H04L67/06 | 分类号: | H04L67/06 |
代理公司: | 广州三环专利商标代理有限公司 44202 | 代理人: | 郝传鑫;贾允 |
地址: | 518057 广东省深圳*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 文件 下载 方法 装置 设备 介质 | ||
1.一种文件下载方法,其特征在于,所述方法包括:
响应于接收到的下载请求,将待下载文件切分为至少两个分片文件;
创建进度更新线程以及至少两个下载线程;所述至少两个下载线程与所述至少两个分片文件一一对应;
在所述进度更新线程中创建一个循环对象,利用所述循环对象创建一个消息队列,以及基于所述循环对象和所述消息队列构建线程通信机制;所述消息队列用于按序存储待读取的任务进度消息;
利用所述下载线程执行对应的所述分片文件的下载任务;
利用所述下载线程基于所述线程通信机制将所述下载线程对应的任务进度消息发送给所述消息队列,所述下载线程对应的任务进度消息表征所述下载线程对应的下载任务的执行情况,所述下载线程对应的任务进度消息包括所述下载线程的本次下载数据范围;
利用所述进度更新线程更新所述待下载文件的下载进度。
2.根据权利要求1所述的方法,其特征在于:
所述利用所述进度更新线程更新所述待下载文件的下载进度之前,所述方法还包括:
由所述进度更新线程确定所述任务进度消息对应的时间戳;
由所述进度更新线程根据所述任务进度消息对应的时间戳在所述消息队列中插入所述任务进度消息;
所述利用所述进度更新线程更新所述待下载文件的下载进度,包括:
由所述进度更新线程循环执行下述步骤至所述消息队列为空:利用所述循环对象从所述消息队列中抽取最早时间戳对应的所述任务进度消息作为目标任务进度消息,以及根据所述目标任务进度消息更新所述待下载文件的下载进度。
3.根据权利要求1所述的方法,其特征在于,所述任务进度消息包括本次下载数据范围,所述本次下载数据范围指示在上一次任务进度上报时间点与本次任务进度上报时间点之间对应的所述分片文件的已下载数据范围;
相应的,所述利用所述进度更新线程更新所述待下载文件的下载进度,包括:
由所述进度更新线程获取所述待下载文件对应的总数据范围;
由所述进度更新线程获取所述待下载文件对应的已下载数据范围;
由所述进度更新线程根据所述总数据范围、所述待下载文件对应的已下载数据范围以及所述本次下载数据范围更新所述待下载文件的下载进度。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
由所述进度更新线程获取上一次下载进度更新对应的历史时间;
由所述进度更新线程根据当前时间和所述历史时间得到待计算时间;
由所述进度更新线程根据所述本次下载数据范围和所述待计算时间得到所述待下载文件的当前下载速度。
5.根据权利要求1所述的方法,其特征在于,所述利用所述下载线程基于所述线程通信机制将所述下载线程对应的任务进度消息发送给所述消息队列之前,所述方法还包括:
由所述下载线程监控所述下载任务的执行状态;
由所述下载线程基于所述执行状态确定对应的所述分片文件的当前次下载数据范围;
当所述当前次下载数据范围满足数据范围阈值的要求时,由所述下载线程基于所述当前次下载数据范围生成所述下载线程对应的所述任务进度消息。
6.根据权利要求5所述的方法,其特征在于,所述利用所述下载线程基于所述线程通信机制将所述下载线程对应的任务进度消息发送给所述消息队列之前,所述方法还包括:
当接收到服务器返回的数据读取完毕消息时,由所述下载线程基于所述当前次下载数据范围生成所述下载线程对应的所述任务进度消息;
其中,所述数据读取完毕消息表征对应的所述分片文件的内容数据已读取完毕。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于腾讯科技(深圳)有限公司,未经腾讯科技(深圳)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910982645.2/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种星型聚酰胺及其用途
- 下一篇:一种洗衣机搅拌器及其洗衣机