一种数据传输方法、系统、装置、计算设备和存储介质

文档序号:195931 发布日期:2021-11-02 浏览:27次 >En<

阅读说明:本技术 一种数据传输方法、系统、装置、计算设备和存储介质 (Data transmission method, system, device, computing equipment and storage medium ) 是由 李纯杰 张朝滨 于 2021-07-27 设计创作,主要内容包括:本公开提供了一种数据传输方法、系统、装置、计算设备和存储介质,其中,该方法包括:获取控制端Master发送的待传输任务;待传输任务为控制端Master对获取的目标任务进行拆分后得到的,待传输任务包括至少一个待传输文件的文件属性信息;基于文件属性信息,确定待传输任务对应的每个待传输文件的文件读取信息;利用预先设置的多个协程基于文件读取信息,分别获取与每个文件读取信息相匹配的待传输文件;利用多个协程,将待传输任务中的每个待传输文件传输到对应的目标地址。本公开实施例能够提高文件传输的速度和效率。(The present disclosure provides a data transmission method, system, apparatus, computing device and storage medium, wherein the method comprises: acquiring a task to be transmitted sent by a Master at a control end; the task to be transmitted is obtained by splitting the acquired target task through the Master at the control end, and comprises file attribute information of at least one file to be transmitted; determining file reading information of each file to be transmitted corresponding to the task to be transmitted based on the file attribute information; respectively acquiring files to be transmitted matched with the file reading information by utilizing a plurality of preset protocol programs based on the file reading information; and transmitting each file to be transmitted in the tasks to be transmitted to the corresponding target address by using a plurality of coroutines. The file transmission method and the file transmission device can improve the speed and efficiency of file transmission.)

一种数据传输方法、系统、装置、计算设备和存储介质

技术领域

本公开涉及数据传输技术领域,具体而言,涉及一种数据传输方法、系统、装置、计算设备和存储介质。

背景技术

随着计算机技术的快速发展,机器学习的应用越来越广泛,数据作为机器学习的重要基础,数据的种类越丰富、数量越丰富,机器学习的学习效果越好。

大量的数据往往存储在不同的区域中,且不同类型的数据对应的数据存储方式不同,因此,为了保证机器学习的效果,往往需要先从不同的区域获取数据,再将数据传输至目标地址以用于机器学习。

而现有技术中的数据传输方式,存在传输方式单一、传输效率低的问题,从而,影响了机器学习的效率。

发明内容

本公开实施例至少提供一种数据传输方法、系统、装置、计算设备和存储介质。

第一方面,本公开实施例提供了一种数据传输方法,应用于工作者端Worker,包括:

获取控制端Master发送的待传输任务;所述待传输任务为所述控制端Master对获取的目标任务进行拆分后得到的,所述待传输任务包括至少一个待传输文件的文件属性信息;

基于所述文件属性信息,确定所述待传输任务对应的每个所述待传输文件的文件读取信息;

利用预先设置的多个协程基于所述文件读取信息,分别获取与每个所述文件读取信息相匹配的待传输文件;

利用所述多个协程,将所述待传输任务中的每个所述待传输文件传输到对应的目标地址。

该实施方式,基于确定的每个待传输文件对应的文件读取信息,能够确定与每个待传输文件的存储方式相匹配的文件读取方式,因此,能够实现对不同数据存储方式存储的待传输文件的传输,从而能够提高文件或数据的传输效率,并且有利于提高机器学习的效率。另外,一个协程可以进行一个待传输文件的传输,每个协程配置有多个文件读取方式,从而,通过设置在工作者端Worker内的多个协程,不仅可以实现利用与不同的数据存储方式相匹配的文件读取方式进行待传输文件的读取,还可以在读取到待传输文件之后,实现对多个待传输文件的同步传输,一方面提高了文件读取的多样性和灵活性,另一方面也提高了数据传输的效率,从而,提高了待传输任务的执行速度和执行效率。此外,由于待传输任务为通过控制端Master对获取的目标任务进行拆分后得到的,通过拆分目标任务的方式,可以实现将拆分得到的多个待传输任务发送给多个工作者端Worker,利用多个工作者端Worker对多个待传输任务进行同步处理,进一步提高了文件传输的速度和效率。

在一种可能的实施方式中,基于所述文件属性信息,确定所述待传输文件的文件读取信息,包括:

基于所述文件属性信息,确定所述待传输文件的文件存储方式和文件位置;

基于所述待传输文件的文件存储方式,确定所述待传输文件的文件读取方式;

将所述文件读取方式和所述文件位置作为所述待传输文件的文件读取信息。

不同的文件存储方式对应于不同的文件读取方式,通过确定的文件存储方式,能够准确地确定出与该方式相匹配的文件读取方式,基于确定的文件位置,能够准确地获取到待传输文件,进而,将文件读取方式和文件位置作为文件读取信息,能够使工作者端worker利用该信息,准确读取到待传输文件,从而,完成对待传输文件的传输。

在一种可能的实施方式中,所述利用所述多个协程,将所述待传输任务中的每个所述待传输文件传输到对应的目标地址,包括:

针对所述多个协程中的每个协程,利用该协程将对应的待传输文件向所述目标地址进行传输;

在所述待传输文件传输失败的情况下,确定所述待传输文件的传输失败次数;

在所述传输失败次数小于预设失败阈值的情况下,重新对所述待传输文件进行传输。

通过设置预设失败阈值的方式,能够实现对传输失败的文件主动重传,从而,能够降低文件传输失败的概率。

在一种可能的实施方式中,在确定所述待传输文件的传输失败次数之后,所述方法还包括:

在所述传输失败次数大于所述预设失败阈值的情况下,生成所述待传输文件的传输失败记录;

将所述传输失败记录发送给所述控制端Master对应的客户端,以使所述客户端展示所述传输失败记录。

在传输失败次数大于预设失败阈值的情况下,说明主动进行待传输文件重传的方式不能完成对其的传输,需要利用人工的方式进行一定的调整才可以完成传输,例如,调整待传输文件、更换传输工作者端worker等。因此,通过生成传输失败记录并将其发送给客户端的方式,可以使用户在客户端及时获取传输失败的结果,并基于该结果进行一定的调整以完成对待传输文件的重传,从而,保证待传输文件可以最终传输至目标地址。

在一种可能的实施方式中,在所述将所述传输失败记录发送给所述控制端Master对应的客户端之前,还包括:

确定每个所述待传输文件的文件传输信息;所述文件传输信息包括所述待传输文件的传输时间信息、文件名称、所述待传输文件对应的传输任务创建人信息中的至少一种;

确定每个所述待传输文件的文件传输结果;

基于每个所述待传输文件的文件传输结果,确定所述待传输任务的任务执行结果;

所述将所述传输失败记录发送给所述控制端Master对应的客户端,包括:

将所述传输失败记录、每个所述待传输文件的文件传输信息和所述任务执行结果发送给所述控制端Master对应的客户端。

通过将传输失败记录、文件传输信息和任务执行结果发送给客户端的方式,不仅可以在客户端展示待传输任务的执行结果,还可以展示待传输任务的传输细节信息,如传输时间信息、传输任务创建人信息等,从而,可以基于上述信息对待传输任务进行管理,例如,重新对某一待传输文件进行传输、下载待传输任务对应的待传输文件等,从而有利于提高数据或文件传输效率,提高机器学习效率。

在一种可能的实施方式中,在所述确定所述待传输任务的任务执行结果之后,还包括:

将所述待传输任务作为已执行任务;

确定所述目标任务对应的、除所述已执行任务以外每个待传输任务的任务执行结果;

基于所述任务执行结果,确定所述已执行任务的任务完成顺序;

在所述任务完成顺序与所述目标任务对应的待传输任务的数量相匹配的情况下,将所述目标任务的任务状态更新为完成状态。

基于确定的任务完成顺序,可以准确地确定出待执行任务对应的目标任务的完成进度,以及实现对目标任务的状态的及时更新。

在一种可能的实施方式中,所述方法还包括:

获取所述控制端Master发送的重传任务指令,基于所述重传任务指令,从所述待传输任务对应的待传输文件中确定重传输文件;

对所述重传输文件进行传输。

基于接收到的重传任务指令,能够完成对传输失败的待传输文件(即重传输文件)的重新传输,从而,保证重传输文件最终可以成功地传输至目标地址。

在一种可能的实施方式中,所述方法还包括:

获取针对所述待传输文件的暂停传输指令;

基于所述暂停传输指令,从所述待传输任务对应的待传输文件中确定暂停传输文件;

暂停对所述暂停传输文件的传输。

暂停传输指令为根据用户在客户端主动发起的暂停传输请求生成的,基于获取的暂停传输指令,工作者端worker可以实现对正在传输的待传输文件的传输控制,也即,实现了用户对待传输文件的传输控制。

在一种可能的实施方式中,所述方法还包括:

获取针对所述待传输任务的取消传输指令;

响应于所述取消传输指令,停止所述待传输任务对应的待传输文件的传输操作。

取消传输指令也为根据用户在客户端主动发起的取消传输请求生成的,基于获取的取消传输指令,可以实现对待传输任务对应的待传输文件的传输控制,也即实现了对待传输任务的执行控制,进而,间接实现了用户对待传输任务的控制。

第二方面,本公开实施例还提供一种数据传输系统,包括上述第一方面任一项所述的控制端Master、至少一个上述第一方面所述的工作者端Worker;

所述控制端Master,用于获取目标任务;将所述目标任务拆分成多个待传输任务;分别将每个所述待传输任务发送至至少一个所述工作者端Worker中的每个所述工作者端Worker中;所述待传输任务包括至少一个待传输文件的文件属性信息;

所述工作者端Worker,用于获取控制端Master发送的待传输任务;以及基于所述文件属性信息,确定所述待传输任务对应的每个所述待传输文件的文件读取信息;以及基于所述文件读取信息,分别获取与每个所述文件读取信息相匹配的待传输文件;以及将所述待传输任务中的每个所述待传输文件传输到对应的目标地址。

在一种可能的实施方式中,所述数据传输系统还包括任务监听器,其中:

所述任务监听器,用于在所述工作者端Worker执行所述目标任务的过程中,获取所述目标任务的任务状态;将所述任务状态发送给所述控制端Master对应的客户端,以使所述客户端展示所述任务状态。

在一种可能的实施方式中,所述任务监听器还用于,获取所述客户端发起的针对所述待传输任务的文件重传请求;基于所述文件重传请求,确定所述文件重传请求对应的重传输文件;基于所述重传输文件,生成文件重传任务并发送给所述控制端Master;

所述控制端Master,用于接收所述文件重传任务;基于所述文件重传任务,生成重传任务指令;将所述重传任务指令发送给与所述重传输文件相匹配的工作者端Worker;

所述工作者端Worker,用于接收所述重传任务指令;基于所述重传任务指令,从所述待传输任务对应的待传输文件中确定所述重传输文件;对所述重传输文件进行传输。

在一种可能的实施方式中,所述任务监听器还用于,获取所述客户端发起的针对所述待传输任务的暂停传输请求;基于所述暂停传输请求,确定所述暂停传输请求对应的暂停传输文件;基于所述暂停传输文件,生成暂停传输指令;将所述暂停传输指令发送给所述控制端Master和与所述暂停传输文件相匹配的工作者端Worker;

所述控制端Master,用于接收所述暂停传输指令;响应于所述暂停传输指令,暂停向所述与所述暂停传输文件相匹配的工作者端Worker发送新的待传输任务;

所述工作者端Worker,用于接收所述暂停传输指令;基于所述暂停传输指令,从所述待传输任务对应的待传输文件中确定暂停传输文件;暂停对所述暂停传输文件的传输。

在一种可能的实施方式中,所述任务监听器还用于,获取所述客户端发起的针对所述待传输任务的取消传输请求;从多个所述待传输任务中确定与所述取消传输请求相匹配的取消传输任务;基于所述取消传输任务,生成取消传输指令;将所述取消传输指令发送给所述控制端Master和与所述取消传输任务相匹配的工作者端Worker;

所述控制端Master,用于接收所述取消传输指令;响应于所述取消传输指令,暂停向与所述取消传输任务相匹配的工作者端Worker发送新的待传输任务;

所述工作者端Worker,用于接收所述取消传输指令;响应于所述取消传输指令,停止所述待传输任务对应的待传输文件的传输操作。

在一种可能的实施方式中,所述控制端Master,用于在获取所述目标任务之后,对所述目标任务进行解析,确定所述目标任务对应的每个待传输文件的文件属性信息;

基于每个待传输文件的文件属性信息,将所述待传输文件划分至多个待传输文件组;

基于每个所述待传输文件组,生成与每个所述待传输文件组分别对应的待传输任务,并将所述待传输任务发送至所述工作者端Worker。

第三方面,本公开实施例还提供一种数据传输装置,包括:

第一获取模块,用于获取控制端Master发送的待传输任务;所述待传输任务为所述控制端Master对获取的目标任务进行拆分后得到的,所述待传输任务包括至少一个待传输文件的文件属性信息;

第一确定模块,用于基于所述文件属性信息,确定所述待传输任务对应的每个所述待传输文件的文件读取信息;

第二获取模块,用于利用预先设置的多个协程基于所述文件读取信息,分别获取与每个所述文件读取信息相匹配的待传输文件;

传输模块,用于利用所述多个协程,将所述待传输任务中的每个所述待传输文件传输到对应的目标地址。

在一种可能的实施方式中,所述第一确定模块,用于基于所述文件属性信息,确定所述待传输文件的文件存储方式和文件位置;

基于所述待传输文件的文件存储方式,确定所述待传输文件的文件读取方式;

将所述文件读取方式和所述文件位置作为所述待传输文件的文件读取信息。

在一种可能的实施方式中,所述传输模块,用于针对所述多个协程中的每个协程,利用该协程将对应的待传输文件向所述目标地址进行传输;

在所述待传输文件传输失败的情况下,确定所述待传输文件的传输失败次数;

在所述传输失败次数小于预设失败阈值的情况下,重新对所述待传输文件进行传输。

在一种可能的实施方式中,所述传输模块,还用于在确定所述待传输文件的传输失败次数之后,在所述传输失败次数大于所述预设失败阈值的情况下,生成所述待传输文件的传输失败记录;

将所述传输失败记录发送给所述控制端Master对应的客户端,以使所述客户端展示所述传输失败记录。

在一种可能的实施方式中,所述装置还包括第二确定模块:

所述第二确定模块,用于在所述将所述传输失败记录发送给所述控制端Master对应的客户端之前,确定每个所述待传输文件的文件传输信息;所述文件传输信息包括所述待传输文件的传输时间信息、文件名称、所述待传输文件对应的传输任务创建人信息中的至少一种;

确定每个所述待传输文件的文件传输结果;

基于每个所述待传输文件的文件传输结果,确定所述待传输任务的任务执行结果;

所述传输模块,还用于将所述传输失败记录、每个所述待传输文件的文件传输信息和所述任务执行结果发送给所述控制端Master对应的客户端。

在一种可能的实施方式中,所述装置还包括:

更新模块,用于在所述确定所述待传输任务的任务执行结果之后,将所述待传输任务作为已执行任务;

确定所述目标任务对应的、除所述已执行任务以外每个待传输任务的任务执行结果;

基于所述任务执行结果,确定所述已执行任务的任务完成顺序;

在所述任务完成顺序与所述目标任务对应的待传输任务的数量相匹配的情况下,将所述目标任务的任务状态更新为完成状态。

在一种可能的实施方式中,所述第一获取模块,还用于获取所述控制端Master发送的重传任务指令,基于所述重传任务指令,从所述待传输任务对应的待传输文件中确定重传输文件;

所述传输模块,还用于对所述重传输文件进行传输。

在一种可能的实施方式中,所述第一获取模块,还用于获取针对所述待传输文件的暂停传输指令;

基于所述暂停传输指令,从所述待传输任务对应的待传输文件中确定暂停传输文件;

所述传输模块,还用于暂停对所述暂停传输文件的传输。

在一种可能的实施方式中,所述第一获取模块,还用于获取针对所述待传输任务的取消传输指令;

所述传输模块,还用于响应于所述取消传输指令,停止所述待传输任务对应的待传输文件的传输操作。

第四方面,本公开可选实现方式还提供一种计算机设备,处理器、存储器,所述存储器存储有所述处理器可执行的机器可读指令,所述处理器用于执行所述存储器中存储的机器可读指令,所述机器可读指令被所述处理器执行时,所述机器可读指令被所述处理器执行时执行上述第一方面,或第一方面中任一种可能的实施方式中的步骤。

第五方面,本公开可选实现方式还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被运行时执行上述第一方面,或第一方面中任一种可能的实施方式中的步骤。

关于上述数据传输系统、装置、计算机设备、及计算机可读存储介质的效果描述参见上述数据传输方法的说明,这里不再赘述。

为使本公开的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。

附图说明

为了更清楚地说明本公开实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,此处的附图被并入说明书中并构成本说明书中的一部分,这些附图示出了符合本公开的实施例,并与说明书一起用于说明本公开的技术方案。应当理解,以下附图仅示出了本公开的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。

图1示出了本公开实施例所提供的一种应用于工作者端Worker的数据传输方法的流程图;

图2示出了本公开实施例所提供的一种传输目标任务对应的每个待传输文件的具体实施流程图;

图3示出了本公开实施例所提供的一种数据传输系统的示意图;

图4示出了本公开实施例所提供的一种数据传输装置的示意图;

图5示出了本公开实施例所提供的一种计算机设备结构示意图。

具体实施方式

为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。通常在此处描述和示出的本公开实施例的组件可以以各种不同的配置来布置和设计。因此,以下对本公开的实施例的详细描述并非旨在限制要求保护的本公开的范围,而是仅仅表示本公开的选定实施例。基于本公开的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。

另外,本公开实施例中的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。

在本文中提及的“多个或者若干个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。

经研究发现,随着计算机技术的快速发展,机器学习的应用越来越广泛,数据作为机器学习的重要基础,数据的种类越丰富、数量越丰富,机器学习的学习效果越好。

大量的数据往往存储在不同的区域中,且不同类型的数据对应的数据存储方式不同,因此,为了保证机器学习的效果,往往需要先从不同的区域获取数据,再将数据传输至目标地址以用于机器学习。

而现有技术中的数据传输方式,存在传输方式单一、传输效率低的问题,从而,影响了机器学习的效率。

基于上述研究,本公开提供了一种数据传输方法、系统、装置、计算设备和存储介质,基于确定的每个待传输文件对应的文件读取信息,能够确定与每个待传输文件的存储方式相匹配的文件读取方式,因此,能够实现对不同数据存储方式存储的待传输文件的传输,从而能够提高文件或数据的传输效率,并且有利于提高机器学习的效率。另外,一个协程可以进行一个待传输文件的传输,每个协程配置有多个文件读取方式,从而,通过设置在工作者端Worker内的多个协程,不仅可以实现利用与不同的数据存储方式相匹配的文件读取方式进行待传输文件的读取,还可以在读取到待传输文件之后,实现对多个待传输文件的同步传输,一方面提高了文件读取的多样性和灵活性,另一方面也提高了数据传输的效率,从而,提高了待传输任务的执行速度和执行效率。此外,由于待传输任务为通过控制端Master对获取的目标任务进行拆分后得到的,通过拆分目标任务的方式,可以实现将拆分得到的多个待传输任务发送给多个工作者端Worker,利用多个工作者端Worker对多个待传输任务进行同步处理,进一步提高了文件传输的速度和效率。

针对以上方案所存在的缺陷,均是发明人在经过实践并仔细研究后得出的结果,因此,上述问题的发现过程以及下文中本公开针对上述问题所提出的解决方案,都应该是发明人在本公开过程中对本公开做出的贡献。

应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。

需要说明的是,本公开实施例中所提到的特定名词包括:

Master-Worker框架:控制者-工作者框架,是一种使用多线程进行数据处理的结构,多个工作者端Worker(以下简称Worker)进程协作处理用户请求,控制端Master(以下简称Master)进程负责维护Worker进程,并整合最终处理结果。

Worker:用于实际处理一个任务。

Master:用于任务的分配和最终结果的合成。

Lustre:一种平行分布式文件存储系统,通常用于大型计算机集群和超级电脑。

Ceph:是一个分布式文件存储系统,能够在维护POSIX兼容性的同时加入了复制和容错功能。

FTP:File Transfer Protocol,文件传输协议,是用于在网络上进行文件传输的一套标准协议。

为便于对本实施例进行理解,首先对本公开实施例所公开的一种数据传输方法进行详细介绍,本公开实施例所提供的数据传输方法的执行主体一般为具有一定计算能力的计算机设备,在一些可能的实现方式中,该数据传输方法可以通过处理器调用存储器中存储的计算机可读指令的方式来实现。

下面以执行主体为工作者端Worker为例对本公开实施例提供的数据传输方法加以说明。

如图1所示,为本公开实施例提供的一种应用于工作者端Worker的数据传输方法的流程图,可以包括以下步骤:

S101:获取控制端Master发送的待传输任务。

其中,待传输任务为控制端Master对获取的目标任务进行拆分后得到的,待传输任务包括至少一个待传输文件的文件属性信息。

本公开实施例所提供的数据传输方法可以是基于预先构建的Master-Worker框架实施的,可以应用于数据的跨集群传输,其中,Master为控制端,用于接收来自客户端的目标任务,目标任务为用户在客户端发起的进行文件传输的任务,用于将待传输文件传输至目标地址。待传输文件中可以包括各种类型的数据,不同类型的数据具有不同的作用。具体的,待传输文件为按照一定的文件存储方式、存储在某一文件区域的、需要进行传输的文件,例如,存储在网盘A的C区域中的文件。

Worker为工作者端,用于执行Master发送的待处理任务,其中,待处理任务可以是Master在接收到目标任务之后,利用目标任务对应的待传输文件对目标任务进行拆分得到的,一个目标任务可以被拆分成多个待处理任务,每个待处理任务可以发送至不同的Worker中执行,也即,每个待传输任务都是目标任务对应的一个子任务。一个目标任务可以对应于多个待传输文件,所有待传输任务对应的待传输文件等同于目标任务对应的待传输文件。

具体的,一个Master可以对应于多个Worker,多个Worker可以设置在至少一个用于文件传输的机器中。这里,虽然小文件的传输速度快,但是每个文件占用的IO都是固定的,因此,对于小文件而言,其传输的时间大都消耗在IO上,而现有技术都是利用单机器进行文件传输,IO的数量有限,多个小文件的传输速度也因此受限,降低了文件传输的效率。通过设置多个机器的方式,增加了可使用的IO数量,可以实现同步利用多机器的IO进行文件传输,避免了多个小文件的传输受单机器的IO数量限制而影响文件传输的速度和效率的问题,提高了文件传输的速度和效率。

文件属性信息用于表征待传输文件的基础属性信息,例如,待传输文件的文件位置、文件类型、文件来源、文件名称、文件大小等等信息。一个待传输任务中可以包括多个待传输文件,每个待传输文件的文件属性信息可以相同,也可以不同,可以由实际的目标任务所对应的待传输文件决定。

具体实施时,当用户在客户端发起针对多个待传输文件的目标任务之后,目标任务将被添加至预先的任务执行队列中。进而,Master可以在任务执行队列中获取目标任务,并对目标任务进行解析,以单个待传输文件为基础解析单元,利用并发的方式,对目标任务对应的每个待传输文件进行快速解析,确定出每个待传输文件的文件位置、文件来源、文件存储方式、文件大小等信息,并将其作为每个待传输文件的文件属性信息。

之后,可以根据每个Worker的传输能力以及每个待传输文件的文件属性信息,将目标任务对应的多个待传输文件进行分组,得到多个待传输文件组。其中,每个Worker的传输能力用于反映该Worker可以传输的待传输文件的文件大小、可以同步传输的待传输文件的数量等信息,不同的Worker的传输能力可以不同。例如,一个Worker可以同步传输的待传输文件的数量为10个,每个待传输文件的文件大小不可以超过20MB,则Master可以根据每个待传输文件的文件属性信息,筛选出10个文件大小不超过20MB的待传输文件,将其作为一个待传输文件组。

或者,在划分待传输文件组的过程中,也可以基于每个待传输文件对应的文件位置,将处于同一位置的待传输文件作为一个待传输文件组;或者,还可以基于每个待传输文件对应的文件存储方式,将文件存储方式一致的待传输文件划分至一个待传输文件组。关于划分待传输文件组的方式,本公开实施例不进行限定,可以根据实际的开发需要进行设置。

进一步的,Master可以将每个待传输文件组中的待传输文件进行打包,并在完成文件打包之后,可以基于待传输文件组中的待传输文件的文件属性信息和每个待传输文件组对应的打包得到的文件,生成与每个待传输文件组对应的待传输任务。并且,在生成待传输任务之后,Master还可以初始化每个待传输任务,具体的,可以初始化每个待传输任务的任务状态、任务执行进度,以及确定每个待传输任务对应的待传输文件的文件总大小、文件总数量等信息。

之后,可以将生成的每个待传输任务分别向不同的Worker发送,进而,Worker便可以获取到Master发送的待传输任务。

S102:基于文件属性信息,确定待传输任务对应的每个待传输文件的文件读取信息。

这里,文件读取信息为用于读取待传输文件的信息。其中,文件读取信息可以包括文件读取方式、文件位置等信息。

具体实施时,针对Master对应的任一个Worker,在获取到待传输任务之后,可以利用设置在Worker中的、用于解析待传输任务的协程,对待传输任务进行解析,确定待传输任务对应的每个待传输文件,然后可以根据每个待传输文件的文件属性信息,确定该待传输文件的文件读取方式、文件位置等信息,之后,可以将其作为待传输文件的文件读取信息。

S103:利用预先设置的多个协程基于文件读取信息,分别获取与每个文件读取信息相匹配的待传输文件。

这里,一个Worker中可以设置一个协程池,协程池中包括多个协程,不同的协程可以具有不同的功能,具体的,可以包括上述S102中解析待传输任务的协程,以及获取待传输文件并传输待传输文件的协程。

具体实施时,在确定每个待传输文件的文件读取信息之后,可以将文件读取信息发送至数据存储通道。其中,数据存储通道为用于存储文件读取信息的通道,协程池中用于传输待传输文件的协程需要在数据存储通道获取文件读取信息。

然后,针对协程池中的每个用于传输待传输文件的协程,该协程可以在数据存储通道中获取一个待传输文件对应的文件读取信息,然后,可以根据文件读取信息,确定与文件读取信息相匹配的待传输文件的文件位置以及文件读取方式,进而,可以利用确定的文件读取方式,从文件位置处获取待传输文件。

进而,每个协程都可以获取到与其获取的文件读取信息相匹配的待传输文件。

S104:利用多个协程,将待传输任务中的每个待传输文件传输到对应的目标地址。

这里,目标地址为待传输文件需要传输到的位置。并且,每个待传输文件对应的目标地址可以相同,也可以不同,这里不进行限定。例如,待传输文件A对应的目标地址为网盘B对应的A1区域,待传输文件B对应的目标地址为网盘B对应的A1区域,待传输文件C对应的目标地址为网盘C对应的C1区域。

本步骤中,针对多个协程中的每个协程,该协程可以响应于获取的待传输任务,基于该待传输任务确定该协程对应的待传输文件对应的目标地址。进而,该协程可以将获取的待传输文件传输至对应的目标地址。

基于上述步骤,多个协程中的每个协程都可以确定其获取的待传输文件对应的目标地址,并将其对应的待传输文件传输至目标地址。从而,可以实现将待传输任务中的每个待传输文件传输到对应的目标地址。

另外,在将待传输文件传输到对应的目标地址之后,Worker还可以将待传输文件下载在目标地址对应的数据库中,具体的,数据库可以为云端服务器对应的数据库。这样,可以实现将待传输文件存储在本地,进而,方便后续用户对存储在本地的待传输文件进行管理。

此外,在待传输文件的数量多于Master对应的Worker的数量的情况下,每个Worker在将获取到的待传输文件传输至目标地址之后,可以返回执行S103和S104,直至将待传输任务中的每个待传输文件传输到对应的目标地址。

这样,基于确定的每个待传输文件对应的文件读取信息,能够确定与每个待传输文件的存储方式相匹配的文件读取方式,因此,能够实现对不同数据存储方式存储的待传输文件的传输,从而能够提高文件或数据的传输效率,并且有利于提高机器学习的效率。另外,一个协程可以进行一个待传输文件的传输,每个协程配置有多个文件读取方式,从而,通过设置在Worker内的多个协程,不仅可以实现利用与不同的数据存储方式相匹配的文件读取方式进行待传输文件的读取,还可以在读取到待传输文件之后,实现对多个待传输文件的同步传输,一方面提高了文件读取的多样性和灵活性,另一方面也提高了数据传输的效率,从而,提高了待传输任务的执行速度和执行效率。此外,由于待传输任务为通过Master对获取的目标任务进行拆分后得到的,通过拆分目标任务的方式,可以实现将拆分得到的多个待传输任务发送给多个Worker,利用多个Worker对多个待传输任务进行同步处理,进一步提高了文件传输的速度和效率。

在一种实施例中,针对S102,可以按照以下步骤确定待传输文件的文件读取信息:

步骤一、基于文件属性信息,确定待传输文件的文件存储方式和文件位置。

这里,文件存储方式用于反映待传输文件是如何存储,不同的文件存储方式对应的文件读取方式不同,具体的,文件存储方式可以包括lustre、ceph和ftp等方式。文件位置为待传输文件所在的位置。

由上述实施例可知,文件属性信息中包括文件待传输文件的文件位置和文件存储方式,因此,针对待传输任务对应的任一个待传输文件,可以直接对该文件的文件属性信息进行解析,确定该待传输文件的文件存储方式和文件位置。

步骤二、基于待传输文件的文件存储方式,确定待传输文件的文件读取方式。

这里,文件读取方式用于表征从文件位置读取待传输文件的方式,一种文件存储方式对应于一种文件读取方式。针对任一待传输文件,只有利用与该待传输文件的文件存储方式对应的文件读取方式读取该待传输文件,才能获取到准确的、完整的文件,否则,则无法待传输文件,或获取到不准确的、不完整的文件。

具体实施时,在确定待传输文件的文件存储方式之后,Worker可以直接确定与文件存储方式相匹配的文件读取方式。

另外,针对上述S103,每个协程中可以设置有与多种文件存储方式相匹配的文件读取方式。当协程从数据存储通道中获取到待传输文件的文件读取方式后,可以从预设设置的多种文件读取方式中选取上述文件读取方式作为此次读取待传输文件的方式。

这样,通过预先设置多种文件读取方式的方法,可以保证每个协程在确定待传输文件的文件读取方式之后,一定存在与该文件读取方式相匹配的读取方式,避免了协程只能使用一种文件读取方式而造成协程的工作模式单一、灵活性较差的问题,提高了协程读取文件的灵活性,进而,提高了Worker的灵活性和适用性。

步骤三、将文件读取方式和文件位置作为待传输文件的文件读取信息。

具体实施时,可以直接将文件读取方式和文件位置作为待传输文件的文件读取信息,之后,可以将其存储至数据存储通道,以使协程在获取到文件读取信息之后,可以准确地从中获取文件读取方式和文件位置,并完成对待传输文件的读取和传输。

在一种实施例中,针对S104,针对多个协程中的每个协程,可以利用该协程,将其获取待传输文件传输至待传输文件对应的目标地址,在该协程传输完成的情况下,可以获取待传输文件的文件传输结果。具体的,文件传输结果可以文件传输成功和文件传输失败两种。

进而,在确定待传输文件的文件传输结果为文件传输失败的情况下,可以确定该协程传输该待传输文件的传输失败次数。然后,可以确定传输失败次数和预设失败阈值之间的大小关系,在确定传输失败次数小于预设失败阈值的情况下,可以利用该协程将该待传输文件进行重新传输。具体的,在将每个待传输文件的文件读取信息存储在数据存储通道之后,Worker可以建立与每个待传输文件的传输连接,在确定待传输文件的传输失败次数小于预设失败阈值的情况下,可以重新尝试建立该待传输文件对应的传输连接,利用该待传输文件对应的协程重新对其进行传输。

这样,通过设置预设失败阈值的方式,能够实现对传输失败的文件主动重传,从而,能够降低文件传输失败的概率。

另外,在确定传输失败次数大于预设失败阈值的情况下,说明主动进行待传输文件重传的方式不能完成对其的传输,在本次传输中,该待传输文件已经传输失败,如果需要成功完成该待传输文件的传输,需要利用人工的方式对待传输任务或待传输文件进行一定的调整。因此,可以基于该待传输文件,生成与该待传输文件对应的传输失败记录。之后,可以将传输失败记录发送给Master对应的客户端。这样,客户端在接收到传输失败记录之后,可以将其展示给用户,从而,用户可以获取该传输失败记录,并在确定需要将该传输失败记录对应的待传输文件传输至其对应的目标地址的情况下,可以对待传输任务或待传输文件进行一定的调整,然后,重新发送针对该待传输文件的传输任务,以完成对该待传输文件的传输。

其中,将生成的传输失败记录发送至客户端的步骤可以是在Worker将获取的待处理任务对应的每个待传输文件都传输完成之后执行的。具体的,可以在确定每个待传输文件都传输完成之后,将生成的传输失败记录进行合并,生成最终失败记录,并发送给客户端,以使客户端将其展示给用户。或者,针对任一待传输文件在,在生成其对应的传输失败记录之后,可以直接将其发送至客户端,这里不进行具体限定。

在另一种实施方式中,Worker在生成最终失败记录之后,还可以将其发送给Master,再通过Master将最终失败记录发送给客户端。

在另一种实施例中,在将传输失败记录发送给Master对应的客户端之前,还可以确定每个待传输文件的文件传输信息。这里,文件传输信息包括待传输文件的传输时间信息、文件名称、待传输文件对应的传输任务创建人信息、待传输文件对应的哈希校验码中的至少一种。

其中,传输时间信息可以包括传输开始时间、传输结束时间以及传输时长信息等;传输任务创建人信息可以包括传输任务创建人,传输任务修改人等;哈希校验码用于对待传输文件进行正确性检验。

并且,Worker还可以确定每个协程传输待传输文件的文件传输结果,也即,确定每个待传输文件是否传输成功。进一步的,可以根据每个待传输文件的文件传输结果,确定待传输任务对应的任务执行结果。具体的,任务执行结果可以包括任务执行成功、任务执行失败和任务部分失败三种。

其中,在每个待传输文件的文件传输结果之后,可以确定传输成功的待传输文件和传输失败的待传输文件。进而,在确定每个待传输文件均传输成功的情况下,可以确定任务执行结果为任务执行成功;在确定每个待传输文件均传输失败的情况下,可以确定任务执行结果为任务执行失败;在确定存在部分待传输文件均传输失败的情况下,可以确定任务执行结果为任务部分失败。并可以将传输失败的待传输文件的传输失败记录进行合并,将其一起作为待传输任务的任务执行结果。

另外,还可以基于每个Worker对应的任务执行结果,确定目标任务对应的任务执行结果。并且,针对每个Worker,可以在确定该Worker对应的每个待传输文件的文件传输信息将其合并,并在确定每个Worker对应的待传输任务都执行完成后,将每个Worker对应的合并后的文件传输信息进行合作,得到目标任务对应的文件传输信息。

之后,可以将传输失败记录、每个待传输文件的文件传输信息(和/或目标任务对应的文件传输信息)和任务执行结果(和/或目标任务对应的任务执行结果)一起发送给客户端,以使客户端将上述各信息都展给用户。进而,用户可以基于上述各信息对待传输文件进行管理。

示例性的,在确定目标任务对应的文件传输信息和目标任务对应的任务执行结果之后,可以基于文件传输信息生成待传输文件对应的文件目录,并基于任务执行结果生成待传输文件对应的执行结果目录,进而,将其发送至客户端。客户端可以将其展示给用户,用于可以通过文件目录和/或执行结果目录对每个待传输文件进行管理,例如,查看待传输文件、删除待传输文件等。

在一种实施例中,在确定某一Worker对应的待传输任务的任务执行结果之后,可以将该待传输任务作为已执行任务,然后可以获取Master对应的每个Worker执行其获取的待传输任务的任务执行结果,也即,确定目标任务对应的、除已执行任务以外每个待传输任务的任务执行结果。

进而,可以基于上述每个待传输任务的任务执行结果,确定已执行任务对应的任务完成顺序。其中,任务完成顺序用于表征已执行任务对应的待传输任务,在目标任务对应的所有待传输任务中为第几个完成的任务。

具体的,基于上述每个待传输任务的任务执行结果,可以确定执行成功的待传输任务的数量,然后可以将该数量加1,作为已执行任务的任务完成顺序。

然后,还可以基于已执行任务的任务完成顺序以及目标任务对应的待传输任务的数量,确定目标任务的任务完成进度。例如,目标任务对应的待传输任务的数量为20,已执行任务的任务完成顺序为10,则可以确定目标任务的任务完成进度为50%。进而,可以将任务完成进度发送至客户端,以使用户可以在客户端及时获取目标任务的任务完成进度。

此外,在确定已执行任务的任务完成顺序与目标任务对应的待传输任务的数量相匹配的情况下,将目标任务的任务状态更新为完成状态。具体的,可以为在确定任务完成顺序对应的数值与待传输任务的数量一致的情况下,将目标任务的任务状态更新为完成状态。

或者,在确定两者相匹配的情况下,可以将目标任务执行完成的信息反馈给Master,继而,Master在接收到该信息之后,将目标任务的任务状态更新为完成状态。

在一种实施例中,Worker还可以在执行待传输任务的过程中,或在执行完待传输任务之后,获取Master发送的重传任务指令。其中,重传任务指令为Master根据获取的客户端发送的文件重传任务生成的。

具体的,本公开实施例所提供的数据传输方法还可以包括任务监听器,用于在Worker执行目标任务的过程中,获取目标任务的任务状态。其中,任务状态可以包括初始化状态、正在执行状态、完成状态和失败状态等,具体的任务状态的设置可以根据开发需要确定,这里不进行限定。

进而,任务监听器可以将获取的任务状态发送给客户端,以使客户端在获取到目标任务的任务状态之后,将其展示给用户。从而,用户可以及时地掌握目标任务的状态变化。

另外,任务监听器还可以获取客户端发起的针对待传输任务的文件重传请求。其中,文件重传请求可以是用户在确定待传输任务对应的任务执行结果之后,在客户端发起的针对部分传输失败的待传输文件的重传请求;也可以是用户在客户端发起的针对待传输任务对应的所有待传输文件的重传请求。

此外,文件重传请求也可以是针对目标任务对应的部分待传输文件或所有待传输文件的重传请求。

进而,任务监听器基于获取的文件重传请求,确定用户指定的需要重传的重传输文件,也即,确定文件重传请求对应的重传输文件,之后,可以根据确定的重传输文件以及文件重传请求,生成指示对重传输文件进行重传的文件重传任务并发送给Master。例如,可以根据每个重传输文件对应的文件位置生成文件重传任务。

其中,重传输文件可以为一个待传输任务对应的待传输文件,也可以为多个待传输任务对应的待传输文件。

之后,Master可以接收到任务监听器发送的文件重传任务,对该文件重传任务进行解析,确定每个重传输文件对应的文件位置、文件存储方式等文件属性信息,并确定每个重传输文件对应的Worker,将同一个Worker对应的重传输文件作为一个重传输文件组,基于每个重传输文件组,生成至少一个重传任务指令,进而,可以将每个重传任务指令发送至与重传输文件相匹配的Worker。

或者,Master可以在确定每个重传输文件对应的文件位置、文件存储方式等文件属性信息之后,基于重传输文件对应的文件属性信息,生成重传任务指令,并将其发送给任一个Worker,利用该Worker执行对每个重传输文件的重传操作。

基于上述步骤,Worker可以获取到Master发送的重传任务指令,进而,Worker可以基于重传任务指令,从待传输任务对应的待传输文件中确定重传输文件,并对确定的重传输文件进行重新传输,将待传输文件传输至其对应的目标地址。

或者,Worker在接收到重传任务指令之后,可以按照S101~S104的步骤,重新获取每个重传输文件,并将其传输至对应的目标地址。

这样,基于接收到的重传任务指令,能够完成对传输失败的重传输文件的重新传输,从而,保证重传输文件最终可以成功地传输至目标地址。

在另一种实施例中,Worker还可以在执行待传输任务的过程中,获取暂停传输指令。其中,暂停任务指令可以为任务监听器直接发送给Worker的。

具体实施时,任务监听器可以获取客户端发起的针对待传输任务的暂停传输请求;其中,暂停传输请求可以是用户在客户端发起的暂停对部分待传输文件或全部待传输文件的传输的请求。

其中,当用户存在暂停对部分待传输文件或全部待传输文件的传输的需求时,可以在客户端发起针对待传输文件对应的待传输任务的暂停传输请求。之后,任务监听器可以获取客户端发起的暂停传输请求,基于该暂停传输请求,确定与暂停传输请求相对应的暂停传输文件,进而,可以基于暂停传输文件,生成暂停传输指令,并将生成的暂停传输指令发送给Master和与暂停传输文件相匹配的Worker。

具体的,在确定暂停传输文件之后,可以确定每个暂停传输文件对应的Worker,之后,可以生成与每个Worker相匹配的暂停传输指令以及用于指示Master暂停向与暂停传输文件相匹配的Worker发送新的待传输任务的暂停传输指令,之后,可以将生成的暂停传输指令分别发送给Worker和Master。

进而,Master在接受到暂停传输指令之后,可以响应于暂停传输指令,确定暂停传输指令对应的Worker,并暂停向确定的Worker发送新的待传输任务。

并且,针对暂停传输指令对应的每个Worker,该Worker在接收到暂停传输指令之后,可以基于接收到的暂停传输指令,从待传输任务对应的待传输文件中确定与暂停传输指令对应的暂停传输文件相匹配的待传输文件,并将其作为暂停传输文件,进而,Worker可以暂停对确定的暂停传输文件的传输。

在一种实施例中,Worker还可以在执行待传输任务的过程中,获取针对待传输任务的取消传输指令。其中,取消传输指令可以为任务监听器直接发送给Worker的,为任务监听器根据获取的客户端发起的针对目标任务对应的待传输任务的取消传输请求生成的。取消传输请求可以是针对目标任务对应的至少一个待传输任务的。

具体的,任务监听器在获取客户端发起的取消传输请求之后,可以从目标任务对应的多个待传输任务中确定与取消传输请求相匹配的取消传输任务。进而,可以基于确定的每个取消传输任务,生成与每个取消传输任务对应的Worker相匹配的取消传输指令,以及,生成用于指示Master暂停向与取消传输任务相匹配的Worker发送新的待传输任务的取消传输指令。然后,可以将生成的取消传输指令发送给取消传输任务对应的Worker以及Master。

进一步的,Master可以在接收到取消传输指令之后,响应于取消传输指令,确定与取消传输任务相匹配的每个Worker,并暂停向上述每个Worker发送新的待传输任务。

同时,针对取消传输指令对应的每个Worker,该Worker在接收到取消传输指令之后,可以直接响应于取消传输指令,停止对待传输任务对应的每个待传输文件的传输操作。

如图2所示,为本公开实施例所提供的一种传输目标任务对应的每个待传输文件的具体实施流程图,可以包括以下步骤:

S201:利用任务监听器获取目标任务的任务状态。

这里,任务监听器在获取目标任务的任务状态的过程中,还可以获取用户在客户端发起的文件重传请求、暂停传输请求和取消传输请求。

具体实施时,本步骤可以贯穿于S201~S205的整个实施流程中。

S202:控制端Master获取目标任务,将目标任务拆分为多个待传输任务并发送给工作者端Worker。

S203:Worker获取Master发送的待传输任务,并确定待传输任务对应的每个待传输文件的文件读取信息。

S204:协程基于获取的文件读取信息,获取与文件读取信息相匹配的待传输文件。

本步骤中,Worker中包括利用预先设置的多个协程,针对每个协程,该协程可以在数据存储通道中获取文件读取信息,并基于该文件读取信息,获取与该文件读取信息相匹配的待传输文件。

S205:利用协程,将获取的待传输文件传输到对应的目标地址。

本步骤中,针对每个协程,在该协程获取到待传输文件之后,可以将该待传输文件传输到其对应的目标地址,从而,实现将待传输任务中的每个待传输文件分别传输到对应的目标地址。

关于S201~S205的具体实施步骤,可以参照上述各实施例,这里不再赘述。

另外,本公开实例还提供了一种与数据传输方法相对应的数据传输系统,包括如上述各实施例所提及的Master,至少一个上述各实施例所提及的Worker;如图3所示,为本公开实施例所提供的一种数据传输系统的示意图。

其中,所述控制端Master,用于获取目标任务;将所述目标任务拆分成多个待传输任务;分别将每个所述待传输任务发送至至少一个所述工作者端Worker中的每个所述工作者端Worker中;所述待传输任务包括至少一个待传输文件的文件属性信息;

所述工作者端Worker,用于获取控制端Master发送的待传输任务;以及基于所述文件属性信息,确定所述待传输任务对应的每个所述待传输文件的文件读取信息;以及基于所述文件读取信息,分别获取与每个所述文件读取信息相匹配的待传输文件;以及将所述待传输任务中的每个所述待传输文件传输到对应的目标地址。

在一种可能的实施方式中,所述数据传输系统还包括任务监听器,其中:

所述任务监听器,用于在所述工作者端Worker执行所述目标任务的过程中,获取所述目标任务的任务状态;将所述任务状态发送给所述控制端Master对应的客户端,以使所述客户端展示所述任务状态。

在一种可能的实施方式中,所述任务监听器还用于,获取所述客户端发起的针对所述待传输任务的文件重传请求;基于所述文件重传请求,确定所述文件重传请求对应的重传输文件;基于所述重传输文件,生成文件重传任务并发送给所述控制端Master;

所述控制端Master,用于接收所述文件重传任务;基于所述文件重传任务,生成重传任务指令;将所述重传任务指令发送给与所述重传输文件相匹配的工作者端Worker;

所述工作者端Worker,用于接收所述重传任务指令;基于所述重传任务指令,从所述待传输任务对应的待传输文件中确定所述重传输文件;对所述重传输文件进行传输。

在一种可能的实施方式中,所述任务监听器还用于,获取所述客户端发起的针对所述待传输任务的暂停传输请求;基于所述暂停传输请求,确定所述暂停传输请求对应的暂停传输文件;基于所述暂停传输文件,生成暂停传输指令;将所述暂停传输指令发送给所述控制端Master和与所述暂停传输文件相匹配的工作者端Worker;

所述控制端Master,用于接收所述暂停传输指令;响应于所述暂停传输指令,暂停向所述与所述暂停传输文件相匹配的工作者端Worker发送新的待传输任务;

所述工作者端Worker,用于接收所述暂停传输指令;基于所述暂停传输指令,从所述待传输任务对应的待传输文件中确定暂停传输文件;暂停对所述暂停传输文件的传输。

在一种可能的实施方式中,所述任务监听器还用于,获取所述客户端发起的针对所述待传输任务的取消传输请求;从多个所述待传输任务中确定与所述取消传输请求相匹配的取消传输任务;基于所述取消传输任务,生成取消传输指令;将所述取消传输指令发送给所述控制端Master和与所述取消传输任务相匹配的工作者端Worker;

所述控制端Master,用于接收所述取消传输指令;响应于所述取消传输指令,暂停向与所述取消传输任务相匹配的工作者端Worker发送新的待传输任务;

所述工作者端Worker,用于接收所述取消传输指令;响应于所述取消传输指令,停止所述待传输任务对应的待传输文件的传输操作。

在一种可能的实施方式中,所述控制端Master,用于在获取所述目标任务之后,对所述目标任务进行解析,确定所述目标任务对应的每个待传输文件的文件属性信息;

基于每个待传输文件的文件属性信息,将所述待传输文件划分至多个待传输文件组;

基于每个所述待传输文件组,生成与每个所述待传输文件组分别对应的待传输任务,并将所述待传输任务发送至所述工作者端Worker。

关于上述数据传输系统中的Master、Worker和任务监听器所具体执行的操作,以及各种可能的实施方式的具体实施过程,可以参照数据传输方法中个实施例的介绍,这里不再赘述。

本领域技术人员可以理解,在具体实施方式的上述方法中,各步骤的撰写顺序并不意味着严格的执行顺序而对实施过程构成任何限定,各步骤的具体执行顺序应当以其功能和可能的内在逻辑确定。

基于同一发明构思,本公开实施例中还提供了与数据传输方法对应的数据传输装置,由于本公开实施例中的装置解决问题的原理与本公开实施例上述数据传输方法相似,因此装置的实施可以参见方法的实施,重复之处不再赘述。

如图4所示,为本公开实施例提供的一种数据传输装置的示意图,包括:

第一获取模块401,用于获取控制端Master发送的待传输任务;所述待传输任务为所述控制端Master对获取的目标任务进行拆分后得到的,所述待传输任务包括至少一个待传输文件的文件属性信息;

第一确定模块402,用于基于所述文件属性信息,确定所述待传输任务对应的每个所述待传输文件的文件读取信息;

第二获取模块403,用于利用预先设置的多个协程基于所述文件读取信息,分别获取与每个所述文件读取信息相匹配的待传输文件;

传输模块404,用于利用所述多个协程,将所述待传输任务中的每个所述待传输文件传输到对应的目标地址。

在一种可能的实施方式中,所述第一确定模块402,用于基于所述文件属性信息,确定所述待传输文件的文件存储方式和文件位置;

基于所述待传输文件的文件存储方式,确定所述待传输文件的文件读取方式;

将所述文件读取方式和所述文件位置作为所述待传输文件的文件读取信息。

在一种可能的实施方式中,所述传输模块404,用于针对所述多个协程中的每个协程,利用该协程将对应的待传输文件向所述目标地址进行传输;

在所述待传输文件传输失败的情况下,确定所述待传输文件的传输失败次数;

在所述传输失败次数小于预设失败阈值的情况下,重新对所述待传输文件进行传输。

在一种可能的实施方式中,所述传输模块404,还用于在确定所述待传输文件的传输失败次数之后,在所述传输失败次数大于所述预设失败阈值的情况下,生成所述待传输文件的传输失败记录;

将所述传输失败记录发送给所述控制端Master对应的客户端,以使所述客户端展示所述传输失败记录。

在一种可能的实施方式中,所述装置还包括第二确定模块405:

所述第二确定模块405,用于在所述将所述传输失败记录发送给所述控制端Master对应的客户端之前,确定每个所述待传输文件的文件传输信息;所述文件传输信息包括所述待传输文件的传输时间信息、文件名称、所述待传输文件对应的传输任务创建人信息中的至少一种;

确定每个所述待传输文件的文件传输结果;

基于每个所述待传输文件的文件传输结果,确定所述待传输任务的任务执行结果;

所述传输模块404,还用于将所述传输失败记录、每个所述待传输文件的文件传输信息和所述任务执行结果发送给所述控制端Master对应的客户端。

在一种可能的实施方式中,所述装置还包括:

更新模块406,用于在所述确定所述待传输任务的任务执行结果之后,将所述待传输任务作为已执行任务;

确定所述目标任务对应的、除所述已执行任务以外每个待传输任务的任务执行结果;

基于所述任务执行结果,确定所述已执行任务的任务完成顺序;

在所述任务完成顺序与所述目标任务对应的待传输任务的数量相匹配的情况下,将所述目标任务的任务状态更新为完成状态。

在一种可能的实施方式中,所述第一获取模块401,还用于获取所述控制端Master发送的重传任务指令,基于所述重传任务指令,从所述待传输任务对应的待传输文件中确定重传输文件;

所述传输模块,还用于对所述重传输文件进行传输。

在一种可能的实施方式中,所述第一获取模块401,还用于获取针对所述待传输文件的暂停传输指令;

基于所述暂停传输指令,从所述待传输任务对应的待传输文件中确定暂停传输文件;

所述传输模块,还用于暂停对所述暂停传输文件的传输。

在一种可能的实施方式中,所述第一获取模块401,还用于获取针对所述待传输任务的取消传输指令;

所述传输模块,还用于响应于所述取消传输指令,停止所述待传输任务对应的待传输文件的传输操作。

关于装置中的各模块的处理流程、以及各模块之间的交互流程的描述可以参照上述方法实施例中的相关说明,这里不再详述。

本公开实施例还提供了一种计算机设备,如图5所示,为本公开实施例提供的一种计算机设备结构示意图,包括:

处理器51和存储器52;所述存储器52存储有处理器51可执行的机器可读指令,处理器51用于执行存储器52中存储的机器可读指令,所述机器可读指令被处理器51执行时,处理器51执行下述步骤:S101:获取控制端Master发送的待传输任务;S102:基于文件属性信息,确定待传输任务对应的每个待传输文件的文件读取信息;S103:利用预先设置的多个协程基于文件读取信息,分别获取与每个文件读取信息相匹配的待传输文件以及S104:利用多个协程,将待传输任务中的每个待传输文件传输到对应的目标地址。

上述存储器52包括内存521和外部存储器522;这里的内存521也称内存储器,用于暂时存放处理器51中的运算数据,以及与硬盘等外部存储器522交换的数据,处理器51通过内存521与外部存储器522进行数据交换。

上述指令的具体执行过程可以参考本公开实施例中所述的数据传输方法的步骤,此处不再赘述。

本公开实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述方法实施例中所述的数据传输方法的步骤。其中,该存储介质可以是易失性或非易失的计算机可读取存储介质。

本公开实施例所提供的数据传输方法的计算机程序产品,包括存储了程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行上述方法实施例中所述的数据传输方法的步骤,具体可参见上述方法实施例,在此不再赘述。

该计算机程序产品可以具体通过硬件、软件或其结合的方式实现。在一个可选实施例中,所述计算机程序产品具体体现为计算机存储介质,在另一个可选实施例中,计算机程序产品具体体现为软件产品,例如软件开发包(Software Development Kit,SDK)等等。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。在本公开所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本公开各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。

所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本公开的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本公开各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。

最后应说明的是:以上所述实施例,仅为本公开的具体实施方式,用以说明本公开的技术方案,而非对其限制,本公开的保护范围并不局限于此,尽管参照前述实施例对本公开进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本公开揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本公开实施例技术方案的精神和范围,都应涵盖在本公开的保护范围之内。因此,本公开的保护范围应所述以权利要求的保护范围为准。

27页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:流量控制方法、装置、设备及存储介质

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类