[发明专利]一种基于协程处理的文件下载方法、系统及介质在审
申请号: | 202210580483.1 | 申请日: | 2022-05-26 |
公开(公告)号: | CN115037738A | 公开(公告)日: | 2022-09-09 |
发明(设计)人: | 孙成通;王睿;胡焱;马伟 | 申请(专利权)人: | 浪潮金融信息技术有限公司 |
主分类号: | H04L67/06 | 分类号: | H04L67/06 |
代理公司: | 北京权智天下知识产权代理事务所(普通合伙) 11638 | 代理人: | 郭春莉 |
地址: | 215100 江苏省苏州*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 处理 文件 下载 方法 系统 介质 | ||
本发明公开了一种基于协程处理的文件下载方法、系统及介质,所述方法包括以下步骤:获取下载需求,创建任务模板,基于下载需求和任务模板创建第一下载任务;创建第一任务队列,配置异步下载处理算法,基于第一下载任务和第一任务队列调用异步下载处理算法,得到下载标识信息;设置任务标识状态,基于下载标识信息和任务标识状态执行下载任务更新调控操作;本发明能够基于多协程对下载任务进行下载处理,且下载处理过程的有序性高,可以智能的挂起协程,异步处理批量下载任务,并实时更新所下载任务的状态,不会阻塞线程,且协程的轻量化程度高,易于开发和使用,内存泄露更少,提高了下载效率,具有极高的市场价值和应用价值。
技术领域
本发明涉及文件下载处理技术领域,特别是涉及一种基于协程处理的文件下载方法、系统及介质。
背景技术
目前,较多应用于安卓系统中的文件下载方式为封装URLConnection、使用DownloadManager等安卓系统本身的方法;对于文件下载过程中,常需要进行批量下载,这不可避免的会涉及到多线程的调用与切换,而对于以上基于java语言开发的下载方法来说,这是较大的技术难点;
故基于以上背景,需要研发一种可以更加轻量化的批量处理多个下载任务,且不会阻塞线程的文件下载方法,提高文件下载效率。
发明内容
本发明的主要目的是,研发一种可以更加轻量化的批量处理多个下载任务,且不会阻塞线程的文件下载方法,提高文件下载效率。
为实现上述目的,本发明采用的一个技术方案是:提供一种基于协程处理的文件下载方法,包括以下步骤:
下载准备步骤:
获取下载需求,创建任务模板,基于所述下载需求和所述任务模板创建第一下载任务;
下载处理步骤:
创建第一任务队列,配置异步下载处理算法,基于所述第一下载任务和所述第一任务队列调用所述异步下载处理算法,得到下载标识信息;
下载调控步骤:
设置任务标识状态,基于所述下载标识信息和所述任务标识状态执行下载任务更新调控操作。
作为一种改进的方案,所述下载需求包括:第一需求和第二需求;所述第一需求为存在第一下载对象;所述第二需求为不存在第一下载对象;
所述基于所述下载需求和所述任务模板创建第一下载任务的步骤进一步包括:
当所述下载需求为所述第一需求时,获取关于所述第一下载对象的第一下载地址、第一存储路径、第一对象校验信息、第一下载进度信息和第一对象状态信息;将所述第一下载地址、所述第一存储路径、所述第一对象校验信息、所述第一下载进度信息和所述第一对象状态信息导入所述任务模板,得到与所述第一下载对象相匹配的所述第一下载任务。
作为一种改进的方案,所述异步下载处理算法为:
将所述第一下载任务加入所述第一任务队列;
设置非执行任务状态和第一并发阈值;
读取所述第一任务队列中所述第一下载任务的所述第一对象状态信息,判断所述第一对象状态信息是否与所述非执行任务状态相匹配;
若非匹配,则获取下载队列信息,基于所述第一并发阈值和所述下载队列信息执行并发判断步骤;
若匹配,则设置第一时间段,每隔所述第一时间段判断所述第一对象状态信息是否与所述非执行任务状态相匹配,所述第一对象状态信息与所述第一对象状态信息非匹配时,执行所述并发判断步骤。
作为一种改进的方案,所述下载队列信息包括:下载队列地址和若干下载队列子任务信息;
所述并发判断步骤包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浪潮金融信息技术有限公司,未经浪潮金融信息技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202210580483.1/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种商品包装的二次设计与印刷方法
- 下一篇:一种功率模块堵转测试方法