一种文件传输的方法及装置制造方法及图纸

技术编号:13113304 阅读:65 留言:0更新日期:2016-04-01 09:19
本发明专利技术提供了一种文件传输的方法及装置,该方法包括:预先获取待传输文件拆分后的子文件列表,启动多个子线程,设置文件接收路径、传输失败重试次数、传输失败重试时间间隔;多个子线程分别加锁子文件列表,并分别获取一个待传输子文件,从而使该多个子线程同时执行文件传输;若传输成功,相应的子线程继续传输其他待传输子文件;若传输失败,则需等待与传输失败重试时间间隔相应的时长,并再次执行传输,直至该传输任务的执行次数达到传输失败重试次数但仍传输失败时,将传输失败的子文件退回至子文件列表并结束相应子线程;因此,本发明专利技术通过多线程负载均衡和传输失败重试策略,能够在多线程断点传输的基础之上,进一步提高文件传输的成功率。

【技术实现步骤摘要】

本专利技术涉及数据传输
,特别涉及一种文件传输的方法及装置
技术介绍
随着科学技术的不断发展,各行业信息化的程度普遍提高,数据文件在网络之间的传输也越来越多。为了保证数据文件能够快速、稳定的进行传输,目前的文件传输大多结合文件拆分组合、多线程处理技术,以多线程断点传输方式进行传输文件。由于执行文件传输任务的服务器的配置不尽相同,且各个传输节点的网络环境也各不相同、时好时坏,尤其是在服务器配置较低、网络速度慢或不稳定时,文件在传输过程中易出现传输失败的情况,从而在一定程度上会降低文件传输的成功率。
技术实现思路
本专利技术提供了一种文件传输的方法及装置,能够在多线程断点传输的基础之上,进一步提高文件传输的成功率。为了达到上述目的,本专利技术是通过如下技术方案实现的:—方面,本专利技术提供了一种文件传输的方法,预先获取待传输文件拆分后的子文件列表,启动多个子线程,设置传输失败重试次数、传输失败重试时间间隔、文件接收路径,还包括:S1:当所述子文件列表处于解锁状态时,所述多个子线程中的任意一个当前未执行传输任务的目标子线程加锁所述子文件列表,并判断所述子文件列表是否为空,在判断结果包括所述子文件列表为空时,解锁所述子文件列表,所述目标子线程结束执行,否则,获取所述子文件列表中的任意一个目标子文件,将所述目标子文件从所述子文件列表中移除,解锁所述子文件列表,并执行S2;S2:利用所述目标子线程,将所述目标子文件传输至与所述文件接收路径相对应的位置处;S3:判断所述目标子文件是否传输成功,在判断结果包括所述目标子文件传输成功时,执行S1,否则,执行S4 ; S4:判断所述目标子线程传输所述目标子文件的次数是否小于所述传输失败重试次数,如果是,等待与所述传输失败重试时间间隔相对应的时长,并执行S2,否则,当所述子文件列表处于解锁状态时,所述目标子线程加锁所述子文件列表,将所述目标子文件退回至所述子文件列表,解锁所述子文件列表,所述目标子线程结束执行。进一步地,在S4之后,还包括:在所述多个子线程均结束执行之后,判断所述子文件列表是否为空,在判断结果包括所述子文件列表为空时,将传输至与所述文件接收路径相对应的位置处的所述目标子文件进行合并,并删除所述子文件列表。进一步地,所述多个子线程,包括:所述多个子线程的线程数数目等于执行文件传输任务的服务器的内核数数目再减1。进一步地,在所述获取待传输文件拆分后的子文件列表之前,进一步包括:预先设置本地文件路径、子文件拆分大小;所述获取待传输文件拆分后的子文件列表,包括:根据所述子文件拆分大小,将待传输文件拆分成多个待传输子文件,获得包含所述多个待传输子文件的子文件列表,并将所述子文件列表存储至与所述本地文件路径相对应的位置处。进一步地,所述设置传输失败重试次数、传输失败重试时间间隔,包括:设置传输失败重试次数为2?5次、传输失败重试时间间隔0?10s。另一方面,本专利技术提供了一种文件传输的装置,包括:获取单元,用于获取待传输文件拆分后的子文件列表,以及向第一处理单元输出所述子文件列表的信息;启动单元,用于启动多个子线程,以及向所述第一处理单元输出所述多个子线程的信息;第一设置单元,用于设置传输失败重试次数、传输失败重试时间间隔、文件接收路径,以及向传输单元输出所述文件接收路径的信息,向第三处理单元输出所述传输失败重试次数和所述传输失败重试时间间隔的信息;所述第一处理单元,用于接收由所述获取单元输出的所述子文件列表的信息,接收由所述启动单元输出的所述多个子线程的信息,接收由所述第二处理单元输出的传输成功的信号,接收由所述第三处理单元输出的包含传输失败的所述目标子文件的所述子文件列表的信息,当所述子文件列表处于解锁状态时,所述多个子线程中的任意一个当前未执行传输任务的目标子线程加锁所述子文件列表,并判断所述子文件列表是否为空,在判断结果包括所述子文件列表为空时,解锁所述子文件列表,所述目标子线程结束执行,否则,获取所述子文件列表中的任意一个目标子文件,将所述目标子文件从所述子文件列表中移除,解锁所述子文件列表,并触发所述传输单元,以及向所述传输单元输出所述目标子文件和所述目标子线程的信息,向所述第三处理单元输出所述子文件列表的信息;所述传输单元,用于接收由所述第一设置单元输出的所述文件接收路径的信息,接收由所述第一处理单元输出的所述目标子文件和所述目标子线程的信息,接收由所述第三处理单元输出的等待结束的信号,利用所述目标子线程,将所述目标子文件传输至与所述文件接收路径相对应的位置处,以及向第二处理单元输出所述目标子线程传输所述目标子文件的信息;所述第二处理单元,用于根据接收到的由所述传输单元输出的所述目标子线程传输所述目标子文件的信息,判断所述目标子文件是否传输成功,在判断结果包括所述目标子文件传输成功时,触发所述第一处理单元,以及向所述第一处理单元输出传输成功的信号,否则,触发所述第三处理单元,以及向所述第三处理单元输出传输失败的信号和所述目标子线程传输所述目标子文件的信息;所述第三处理单元,用于接收由所述第一设置单元输出的所述传输失败重试次数和所述传输失败重试时间间隔的信息,接收由所述第一处理单元输出的所述子文件列表的信息,在接收到由所述第二处理单元输出的传输失败的信号和所述目标子线程传输所述目标子文件的信息后,判断所述目标子线程传输所述目标子文件的次数是否小于所述传输失败重试次数,如果是,等待与所述传输失败重试时间间隔相对应的时长,并触发所述传输单元,以及向所述传输单元输出等待结束的信号,否则,当所述子文件列表处于解锁状态时,所述目标子线程加锁所述子文件列表,将所述目标子文件退回至所述子文件列表,解锁所述子文件列表,所述目标子线程结束执行,以及向所述第一处理单元输出包含传输失败的所述目标子文件的所述子文件列表的信息。进一步地,该装置还包括:第四处理单元,用于在所述多个子线程均结束执行之后,判断所述子文件列表是否为空,在判断结果包括所述子文件列表为空时,将传输至与所述文件接收路径相对应的位置处的所述目标子文件进行合并,并删除所述子文件列表。进一步地,所述启动单元,具体用于启动多个子线程,且所述多个子线程的线程数数目等于执行文件传输任务的服务器的内核数数目再减1。进一步地,该装置还包括:第二设置单元,用于设置本地文件路径、子文件拆分大小;所述获取单元,具体用于根据所述子文件拆分大小,将待传输文件拆分成包含多个待传输子文件的子文件列表,并将所述子文件列表存储至与所述本地文件路径相对应的位置处。进一步地,所述第一设置单元,具体用于设置传输失败重试次数为2?5次、传输失败重试时间间隔0?10s。本专利技术提供了一种文件传输的方法及装置,预先获取待传输文件拆分后的子文件列表,启动多个子线程,设置文件接收路径、传输失败重试次数、传输失败重试时间间隔;多个子线程分别加锁子文件列表,并分别获取一个待传输子文件,从而使该多个子线程同时执行文件传输;若传输成功,则相应的子线程继续传输其他待传输子文件;若传输失败,则需等待与传输失败重试时间间隔相应的时长,并再次执行传输,直至该传输任务的执行次数达到传输失败重试次数但仍传输失败时,将传输失败的子文件退回至所述子文件列表当前第1页1&nb本文档来自技高网...

【技术保护点】
一种文件传输的方法,其特征在于,预先获取待传输文件拆分后的子文件列表,启动多个子线程,设置传输失败重试次数、传输失败重试时间间隔、文件接收路径,该方法还包括:S1:当所述子文件列表处于解锁状态时,所述多个子线程中的任意一个当前未执行传输任务的目标子线程加锁所述子文件列表,并判断所述子文件列表是否为空,在判断结果包括所述子文件列表为空时,解锁所述子文件列表,所述目标子线程结束执行,否则,获取所述子文件列表中的任意一个目标子文件,将所述目标子文件从所述子文件列表中移除,解锁所述子文件列表,并执行S2;S2:利用所述目标子线程,将所述目标子文件传输至与所述文件接收路径相对应的位置处;S3:判断所述目标子文件是否传输成功,在判断结果包括所述目标子文件传输成功时,执行S1,否则,执行S4;S4:判断所述目标子线程传输所述目标子文件的次数是否小于所述传输失败重试次数,如果是,等待与所述传输失败重试时间间隔相对应的时长,并执行S2,否则,当所述子文件列表处于解锁状态时,所述目标子线程加锁所述子文件列表,将所述目标子文件退回至所述子文件列表,解锁所述子文件列表,所述目标子线程结束执行。

【技术特征摘要】

【专利技术属性】
技术研发人员:丛根滋
申请(专利权)人:浪潮通用软件有限公司
类型:发明
国别省市:山东;37

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1