CN109359099A - 分布式文件上传方法、装置、计算机设备及存储介质 - Google Patents
分布式文件上传方法、装置、计算机设备及存储介质 Download PDFInfo
- Publication number
- CN109359099A CN109359099A CN201810951750.5A CN201810951750A CN109359099A CN 109359099 A CN109359099 A CN 109359099A CN 201810951750 A CN201810951750 A CN 201810951750A CN 109359099 A CN109359099 A CN 109359099A
- Authority
- CN
- China
- Prior art keywords
- file
- slice
- upload
- thread
- threshold value
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Landscapes
- Information Transfer Between Computers (AREA)
Abstract
本发明实施例公开了一种分布式文件上传方法、装置、计算机设备及存储介质,包括下述步骤:获取待上传的目标文件;将所述目标文件进行切片处理形成若干个切片文件;针对所述若干个切片文件中的任一切片文件,对应所述切片文件生成一个上传任务线程,并将生成的上传任务线程添加至堆栈队列中以进行异步上传。通过将上传的目标文件进行切片处理,将大数据文件切片形成若干个切片文件,每个切片文件的大小被分割为一个合适的大小,在进行上传时每一个切片文件对应的建立一个上传任务的线程,终端能够通过异步上传的方式,避免其他操作指令干扰造成的传输错误问题。同时多线程上传任务的设计,当终端为多核处理器时,每个核均能够独立的执行不同的上传任务线程,大大的提高了上传的效率。
Description
技术领域
本发明实施例涉及模型算法领域,尤其是一种分布式文件上传方法、装置、计算机设备及存储介质。
背景技术
数据上传是指将数据从一个终端传输至另一个终端或服务器端的过程。随着信息化时代的来临,数据的交互与共享越来越紧密,伴随而来的一个问题是:数据传输时的体量越来越大,对于数据传输时的速度要求越来越高。
现有技术中,在进行分布式文件上传时大数据的上传时,将数据作为一个整体数据进行串行上传,将整个数据分段构成数据包的方式进行依次上传,每个数据包上传后接收者需要回传一个校验值,验证上传数据是否出现错误,若出现错误时,需要上传终端重新上传错误数据包,在错误数据包重新上传并被验证正确后,继续上传下一个数据包,直至将所有大数据的数据包上传完毕后,上传任务执行完毕。
本发明创造的发明人在研究中发现,现有技术中大数据上传的用户等待的时间过长,且由于上传数据是同一个线程任务,在数据上传的时受到用户其他操作指令的干扰往往会出现数据上传错误的问题。
发明内容
本发明实施例提供能够提供一种对数据较大的文件进行切片处理同时采用多线程快速上传的分布式文件上传方法、装置、计算机设备及存储介质。
为解决上述技术问题,本发明创造的实施例采用的一个技术方案是:提供一种分布式文件上传方法,包括下述步骤:
获取待上传的目标文件;
将所述目标文件进行切片处理形成若干个切片文件;
针对所述若干个切片文件中的任一切片文件,对应所述切片文件生成一个上传任务线程,并将生成的上传任务线程添加至堆栈队列中以进行异步上传。
可选地,所述将所述目标文件进行切片处理形成若干个切片文件的步骤,具体包括下述步骤:
调用预设的第一切片阈值;
根据所述第一切片阈值将所述目标文件分割生成若干个切片文件,其中,各切片文件的数据大小均小于或等于所述第一切片阈值。
可选地,所述目标文件包括若干个文件夹;所述将所述目标文件进行切片处理形成若干个切片文件的步骤,具体包括下述步骤:
调用预设的第二切片阈值;
将所述目标文件中的文件夹的大小与所述第二切片阈值进行比对;
当所述文件夹的大小小于等于所述第二切片阈值时,确认所述文件夹为切片文件。
可选地,所述将所述目标文件中文件夹与所述第二切片阈值进行比对的步骤之后,还包括下述步骤:
当所述文件夹的大小大于所述第二切片阈值时,将从属于所述文件夹中的下级文件夹和/或独立文件的大小与所述第二切片阈值进行比对;
当所述下级文件夹和/或独立文件的大小小于所述第二切片阈值时,确认所述下级文件夹和/或独立文件为切片文件。
可选地,所述针对所述若干个切片文件中的任一切片文件,对应所述切片文件生成一个上传任务线程,并将生成的上传任务线程添加至堆栈队列中以进行异步上传的步骤之后,还包括下述步骤:
检测所述堆栈队列中是否存在操作任务线程;
当所述堆栈队列中存在操作任务线程时,中止执行所述上传任务线程,运行所述操作任务线程。
可选地,当终端的中央处理器为多核处理器时,所述针对所述若干个切片文件中的任一切片文件,对应所述切片文件生成一个上传任务线程,并将生成的上传任务线程添加至堆栈队列中以进行异步上传的步骤之后,还包括下述步骤:
检测所述堆栈队列中是否存在操作任务线程;
计算所述操作任务线程在所述堆栈队列中的占比;
当所述操作任务线程在所述堆栈队列中的占比大于预设的第一比较阈值时,分配所述中央处理器中的一个单核运行所述操作任务线程。
可选地,所述针对所述若干个切片文件中的任一切片文件,对应所述切片文件生成一个上传任务线程,并将生成的上传任务线程添加至堆栈队列中以进行异步上传的步骤之后,还包括下述步骤:
将所述上传任务线程对应的切片文件由硬盘空间提取至内存空间内;
将所述内存空间内的切片文件分配至网卡进行编码上传。
为解决上述技术问题,本发明实施例还提供一种分布式文件上传装置,包括:
获取模块,用于获取待上传的目标文件;
处理模块,用于将所述目标文件进行切片处理形成若干个切片文件;
执行模块,用于针对所述若干个切片文件中的任一切片文件,对应所述切片文件生成一个上传任务线程,并将生成的上传任务线程添加至堆栈队列中以进行异步上传。
可选地,所述分布式文件上传装置还包括:
第一调用子模块,用于调用预设的第一切片阈值;
第一切片子模块,用于根据所述第一切片阈值将所述目标文件分割生成若干个切片文件,其中,各切片文件的数据大小均小于或等于所述第一切片阈值。
可选地,所述目标文件包括若干个文件夹;所述分布式文件上传装置还包括:
第二调用子模块,用于调用预设的第二切片阈值;
第一比对子模块,用于将所述目标文件中的文件夹的大小与所述第二切片阈值进行比对;
第二切片子模块,用于当所述文件夹的大小小于等于所述第二切片阈值时,确认所述文件夹为切片文件。
可选地,所述分布式文件上传装置还包括:
第二比对子模块,用于当所述文件夹的大小大于所述第二切片阈值时,将从属于所述文件夹中的下级文件夹和/或独立文件的大小与所述第二切片阈值进行比对;
第三切片子模块,用于当所述下级文件夹和/或独立文件的大小小于所述第二切片阈值时,确认所述下级文件夹和/或独立文件为切片文件。
可选地,所述分布式文件上传装置还包括:
第一处理子模块,用于检测所述堆栈队列中是否存在操作任务线程;
第一执行子模块,用于当所述堆栈队列中存在操作任务线程时,中止执行所述上传任务线程,运行所述操作任务线程。
可选地,当终端的中央处理器为多核处理器时,所述分布式文件上传装置还包括:
第二处理子模块,用于检测所述堆栈队列中是否存在操作任务线程;
第一计算子模块,用于计算所述操作任务线程在所述堆栈队列中的占比;
第二执行子模块,用于当所述操作任务线程在所述堆栈队列中的占比大于预设的第一比较阈值时,分配所述中央处理器中的一个单核运行所述操作任务线程。
可选地,所述分布式文件上传装置还包括:
第一提取子模块,用于将所述上传任务线程对应的切片文件由硬盘空间提取至内存空间内;
第三执行子模块,用于将所述内存空间内的切片文件分配至网卡进行编码上传。
为解决上述技术问题,本发明实施例还提供一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机可读指令,所述计算机可读指令被所述处理器执行时,使得所述处理器执行上述所述分布式文件上传方法的步骤。
为解决上述技术问题,本发明实施例还提供一种存储有计算机可读指令的存储介质,所述计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行上述所述分布式文件上传方法的步骤。
本发明实施例的有益效果是:通过将上传的目标文件进行切片处理,将大数据文件切片形成若干个切片文件,每个切片文件的大小被分割为一个合适的大小,在进行上传时每一个切片文件对应的建立一个上传任务的线程,终端能够通过异步上传的方式,对若干个切片文件进行依次上传,由于采用异步上传的方式,终端在上传切片文件的间隙能够停止上传任务,执行优先级更高的其他操作任务,避免其他操作指令干扰造成的传输错误问题。同时多线程上传任务的设计,当终端为多核处理器时,每个核均能够独立的执行不同的上传任务线程,从终端处理速度方面提高了上传的效率。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例分布式文件上传方法的基本流程示意图;
图2为本发明实施例执行上传任务线程的流程示意图;
图3为本发明实施例对目标文件进行切片处理的第一种流程示意图;
图4为本发明实施例对目标文件进行切片处理的第二种流程示意图;
图5为本发明实施例对目标文件进行切片处理的第三种流程示意图;
图6为本发明实施例隔离上传任务与操作任务的流程示意图;
图7为本发明实施例多核任务进程的流程示意图;
图8为本发明实施例分布式文件上传装置基本结构示意图;
图9为本发明实施例计算机设备基本结构框图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。
在本发明的说明书和权利要求书及上述附图中的描述的一些流程中,包含了按照特定顺序出现的多个操作,但是应该清楚了解,这些操作可以不按照其在本文中出现的顺序来执行或并行执行,操作的序号如101、102等,仅仅是用于区分开各个不同的操作,序号本身不代表任何的执行顺序。另外,这些流程可以包括更多或更少的操作,并且这些操作可以按顺序执行或并行执行。需要说明的是,本文中的“第一”、“第二”等描述,是用于区分不同的消息、设备、模块等,不代表先后顺序,也不限定“第一”和“第二”是不同的类型。
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本技术领域技术人员可以理解,这里所使用的“终端”、“终端设备”既包括无线信号接收器的设备,其仅具备无发射能力的无线信号接收器的设备,又包括接收和发射硬件的设备,其具有能够在双向通信链路上,执行双向通信的接收和发射硬件的设备。这种设备可以包括:蜂窝或其他通信设备,其具有单线路显示器或多线路显示器或没有多线路显示器的蜂窝或其他通信设备;PCS(Personal Communications Service,个人通信系统),其可以组合语音、数据处理、传真和/或数据通信能力;PDA(Personal Digital Assistant,个人数字助理),其可以包括射频接收器、寻呼机、互联网/内联网访问、网络浏览器、记事本、日历和/或GPS(Global Positioning System,全球定位系统)接收器;常规膝上型和/或掌上型计算机或其他设备,其具有和/或包括射频接收器的常规膝上型和/或掌上型计算机或其他设备。这里所使用的“终端”、“终端设备”可以是便携式、可运输、安装在交通工具(航空、海运和/或陆地)中的,或者适合于和/或配置为在本地运行,和/或以分布形式,运行在地球和/或空间的任何其他位置运行。这里所使用的“终端”、“终端设备”还可以是通信终端、上网终端、音乐/视频播放终端,例如可以是PDA、MID(Mobile Internet Device,移动互联网设备)和/或具有音乐/视频播放功能的移动电话,也可以是智能电视、机顶盒等设备。
具体请参阅图1,图1为本实施例分布式文件上传方法的基本流程示意图。
如图1所示,一种分布式文件上传方法,包括下述步骤:
S1100、获取待上传的目标文件;
根据用户的操作指令,中央处理器(CPU)获取指示上传的目标文件。根据操作指令中的逻辑地址转化为目标文件存储的物理地址,以此获取目标文件。
目标文件能够是现有技术中任何一种数据类型的文档(不限于)文本文档、图片文档、音视频文档、模块文件、源文件或压缩文件,或者现有技术中多种文件的组合。目标文件的包括的数据量较大,例如10G以上,但不限于次,根据具体应用场景的不同,目标文件的数据量的标准能够降低或者提高。
S1200、将所述目标文件进行切片处理形成若干个切片文件;
根据设定的文件切片方式,对目标文件进行切片。数据切片是指将目标文件切分成一定数量的切片文件,将单个数据过大的目标文件拆分为多个切片文件。
举例说明,当目标文件为多个文档的组合时,对目标文件进行数据分片时,通过预设的分片规则,例如将user_id(文件编号)为1~10000的所有的文章信息放入DB(数据库)1中的article(更新数据表)表中,将user_id为10001~20000的所有文章信息放入DB2中的article表中,以此类推,一直到DBn。这样一来,文章数据就很自然的被分到了各个数据库中,达到了数据切分的目的。将数据分片后,每一个数据分片中中均在各自数据库的article表中携带具有唯一辨识度的文件编号,在分片数据在进行回传时,按分片规则依次或同时向多个数据库请求获取携带有某个文件编号的数据,各数据库将存储的该文件编号的数据发送至请求者。
在一些实施方式中,对目标文件进行切片时,设定一个切片阈值,例如,200M。切片阈值的大小不局限于此,在一些实施方式中,根据应用场景的不同,切片阈值的大小能够更大或者更小。根据该切片阈值和目标文件的物理地址,将目标文件分割为数据均为200M的切片文件,直至最后一个切片文件小于或等于200M时结束切片。同时建立切片数据表,切片数据表中记录每个切片数据在目标文件的位置,方便使用中根据多个切片文件聚合生成目标文件。
S1300、针对所述若干个切片文件中的任一切片文件,对应所述切片文件生成一个上传任务线程,并将生成的上传任务线程添加至堆栈队列中以进行异步上传。
将目标文件切片后生成多个切片文件,终端根据每一个切片文件生成一个任务上传线程的方式对应的生成多个上传任务线程,为控制切片文件依次上传,多个上传任务线程添加至堆栈队列中,堆栈队列中以后到先出的方式执行上传任务线程。
上传的方式采用异步上传,异步处理不用阻塞当前线程来等待处理完成,而是允许后续操作,直至其它线程将处理完成,并回调通知此线程。采用异步上传的方式,终端在执行上传任务线程时,接收到优先级优于上传任务线程的其他线程任务时,例如操作任务线程时,优先执行操作任务线程,使上传任务成为闲暇时间上传的一种上传方法。
当终端的中央处理器为多核处理器时,多核处理器即能够同时执行多个上传任务线程实现并行处理,大大的增加了数据的处理和上传的速度。而如果不对数据进行切片处理,目标文件由单一线程进行上传,多核处理器中也只能够由单核执行该线程,因此,采用切片后多线程上传切片文件的方法能够大大的提高上传速度。
在一些实施方式中,多核中央处理器每个核处理的上传任务线程上传的目标存储空间不同(服务器端或云端),目标存储空间的不同以每个核进行区分。例如,每个核均关联一个目标存储空间,经过该核运行的上传任务线程对应的切片文件,被上传至该核对应的目标存储空间内进行存储。
具体地,终端在进行任务上传时需要将存储在硬盘空间内的切片文件,调用至终端的内存空间内,然后由中央处理器分配网卡对内存空间内的切片数据进行上传。具体请参阅图2,图2为本实施例执行上传任务线程的流程示意图。
如图2所示,步骤S1300之后还包括下述步骤:
S1411、将所述上传任务线程对应的切片文件由硬盘空间提取至内存空间内;
终端的中央处理器在执行上传任务线程时,根据上传任务线程中记载的切片文件的逻辑地址,经过转化成为切片文件的物理地址,访问该物理地址,并将该物理地址中存储的切片文件调用至内存空间内进行暂存。
S1412、将所述内存空间内的切片文件分配至网卡进行编码上传。
终端的中央处理器将存储在内存空间内的切片文件分配至网卡进行上传处理。网卡是工作在链路层的网络组件,是局域网中连接计算机和传输介质的接口,不仅能实现与局域网传输介质之间的物理连接和电信号匹配,还涉及帧的发送与接收、帧的封装与拆封、介质访问控制、数据的编码与解码以及数据缓存的功能等。
网卡通过传输协议,例如无线传输协议或HTTP(超文本传输协议)对切片文件进行编译,然后将编译后的切片文件以帧数据包的方式发送至指定的上传空间(服务器端或云端)。
上述实施方式通过将上传的目标文件进行切片处理,将大数据文件切片形成若干个切片文件,每个切片文件的大小被分割为一个合适的大小,在进行上传时每一个切片文件对应的建立一个上传任务的线程,终端能够通过异步上传的方式,对若干个切片文件进行依次上传,由于采用异步上传的方式,终端在上传切片文件的间隙能够停止上传任务,执行优先级更高的其他操作任务,避免其他操作指令干扰造成的传输错误问题。同时多线程上传任务的设计,当终端为多核处理器时,每个核均能够独立的执行不同的上传任务线程,从终端处理速度方面提高了上传的效率。
在一些实时方式中,为对切片文件进行准确划分,通过设定的切片阈值对目标文件进行分片。具体请参阅图3,图3为本实施例对目标文件进行切片处理的第一种流程示意图。
如图3所示,步骤S1200具体包括下述步骤:
S1211、调用预设的第一切片阈值;
终端在进行数据切片时,调用预存储的第一切片阈值。第一切片阈值大小为设定的存储空间占用值,例如,200M。第一切片阈值的大小不局限于此,在一些实施方式中,根据应用场景的不同,第一切片阈值的大小能够更大或者更小。
S1212、根据所述第一切片阈值将所述目标文件分割生成若干个切片文件,其中,各切片文件的数据大小均小于或等于所述第一切片阈值。
根据该第一切片阈值和目标文件的物理地址,将目标文件分割为数据均为200M的切片文件,直至最后一个切片文件小于或等于200M时结束切片。同时建立切片数据表,切片数据表中记录每个切片数据在目标文件的位置,方便使用中根据多个切片文件聚合生成目标文件。
通过采用设定的阈值对目标文件进行数据切片,能够更好地对切片数据进行切片和数据的管理。
在一些实施方式中,为尽量的保持每一个切片文件的完整性,通过设定的切片阈值,对目标文件所属的文件夹数据大小的比对,当文件夹的数据量小于或等于设定的切片阈值时,确认文件夹为切片文件。具体请参阅图4,图4为本实施例对目标文件进行切片处理的第二种流程示意图。
如图4所示,步骤S1200具体包括下述步骤:
S1221、调用预设的第二切片阈值;
终端在进行数据切片时,调用预存储的第二切片阈值。第二切片阈值大小为设定的存储空间占用值,例如,200M。第二切片阈值的大小不局限于此,在一些实施方式中,根据应用场景的不同,第二切片阈值的大小能够更大或者更小。
S1222、将所述目标文件中的文件夹的大小与所述第二切片阈值进行比对;
获取目标文件中各文件夹包括的数据大小与第二切片阈值之间的关系,获取的具体方式为:依次提取目标文件中各文件夹的数据大小与第二切片值进行比对。
S1223、当所述文件夹的大小小于等于所述第二切片阈值时,确认所述文件夹为切片文件。
当文件夹包括的数据大小小于或等于第二切片阈值时,确认该文件夹为切片文件。通过以文件夹为数据切片的依据,能够使切片文件保留完整的属性,将上述切片文件进行分布式存储时,每个切片文件均保持一定的完整性,用户在下载或者使用目标文件时如出现错误时,重新下载相应的切片文件就能够修改该错误。
在一些实施方式中,部分文件所包含的数据量大于第二切片阈值,需要对该文件夹进一步的进行分拆切片,方法为对该文件中包括的下一级文件夹或者独立文件进行阈值比较,当下一级文件夹或者独立文件满足阈值限定时,将下一级文件夹或者独立文件确定为切片文件。具体请参阅图5,图5为本实施例对目标文件进行切片处理的第三种流程示意图。
S1224、当所述文件夹的大小大于所述第二切片阈值时,将从属于所述文件夹中的下级文件夹和/或独立文件的大小与所述第二切片阈值进行比对;
当文件夹的大小大于第二切片阈值时,获取该文件夹下一级的文件夹和独立文件,将下一级的文件夹和独立文件的数据大小与第二切片阈值进行比较。
独立文件为从属于文件夹且不可继续进行拆分的文件,独立文件能够是:文本文档、图片文档、音视频文档、模块文件、源文件或压缩文件当中的任意一种。
S1225、当所述下级文件夹和/或独立文件的大小小于所述第二切片阈值时,确认所述下级文件夹和/或独立文件为切片文件。
下级文件夹和/或独立文件的大小小于或等于第二切片阈值时,确认该下级文件夹和/或独立文件为切片文件。通过在进行切片时将切片目标向文件夹的下一级文件夹和独立文件延伸,能够使切片文件保留完整的属性,将上述切片文件进行分布式存储时,每个切片文件均保持一定的完整性,用户在下载或者使用目标文件时如出现错误时,重新下载相应的切片文件就能够修改该错误。
在一些实施方式中,部分独立文件的数据大小大于第二切片阈值时,出于对文件完整性的考虑,将大于所述第二切片阈值但小于所述第二切片阈值三倍的独立文件确认为分片文件,将大于第二切片阈值三倍的独立文件进行继续分片处理。
在一些实施方式中,为了有效的将数据上传与用户操作指令进行有效的隔离,对堆栈队列中的线程任务进行检测,当检测到堆栈队列中存在操作任务线程时,暂停上传任务线程优先执行操作任务线程。具体请参阅图6,图6为本实施例隔离上传任务与操作任务的流程示意图。
如图6所示,S1300之后还包括下述步骤:
S1511、检测所述堆栈队列中是否存在操作任务线程;
检测堆栈队列中的线程的操作类型,具体地,读取进入堆栈队列中的任务线程中表头位置的类型识别位,根据该识别位对任务线程的类别进行。例如识别位中,0001表征的任务线程为上传任务线程,0010表征的任务线程为操作任务线程。
S1512、当所述堆栈队列中存在操作任务线程时,中止执行所述上传任务线程,运行所述操作任务线程。
终端在执行上传任务线程时,接收到优先级优于上传任务线程的操作任务线程时,优先执行操作任务线程,使上传任务成为闲暇时间上传的一种上传方法。
在一些实施方式中,当终端的中央处理器为多核处理器时,多核处理器即能够同时执行多个上传任务线程实现并行处理。具体请参阅图7,图7为本实施例多核任务进程的流程示意图。
S1611、检测所述堆栈队列中是否存在操作任务线程;
检测堆栈队列中的线程的操作类型,具体地,读取进入堆栈队列中的任务线程中表头位置的类型识别位,根据该识别位对任务线程的类别进行。例如识别位中,0001表征的任务线程为上传任务线程,0010表征的任务线程为操作任务线程。
S1612、计算所述操作任务线程在所述堆栈队列中的占比;
当检测到堆栈队列中存在任务线程时,通过统计计算操作任务线程在整个堆栈队列中的占比,即操作任务线程在整个堆栈队列中的百分比。
S1613、当所述操作任务线程在所述堆栈队列中的占比大于预设的第一比较阈值时,分配所述中央处理器中的一个单核运行所述操作任务线程。
当终端的中央处理器为多核处理器时,在执行上传任务时,多核分别执行上传任务线程,当操作任务线程在堆栈队列中的占比大于预设的第一比较阈值时,分配中央处理器中的一个单核运行操作任务线程,即单独分配一个单核专职处理操作任务线程。通过分配单核处理操作任务线程能够彻底将操作任务与上传任务线程隔离,提高上传的效率。
为解决上述技术问题,本发明实施例还提供一种分布式文件上传装置。
具体请参阅图8,图8为本实施例分布式文件上传装置基本结构示意图。
如图8所示,一种分布式文件上传装置,包括:获取模块2100、处理模块2200和执行模块2300。其中,获取模块2100用于获取待上传的目标文件;处理模块2200用于将目标文件进行切片处理形成若干个切片文件;执行模块2300用于各切片文件对应生成一个上传任务线程,并将上传任务线程添加至堆栈队列中进行异步上传。
上述实施方式通过将上传的目标文件进行切片处理,将大数据文件切片形成若干个切片文件,每个切片文件的大小被分割为一个合适的大小,在进行上传时每一个切片文件对应的建立一个上传任务的线程,终端能够通过异步上传的方式,对若干个切片文件进行依次上传,由于采用异步上传的方式,终端在上传切片文件的间隙能够停止上传任务,执行优先级更高的其他操作任务,避免其他操作指令干扰造成的传输错误问题。同时多线程上传任务的设计,当终端为多核处理器时,每个核均能够独立的执行不同的上传任务线程,从终端处理速度方面提高了上传的效率。
在一些实时方式中,分布式文件上传装置还包括:第一调用子模块和第一切片子模块。其中,第一调用子模块用于调用预设的第一切片阈值;第一切片子模块用于根据第一切片阈值将目标文件数据分割生成若干个切片文件,其中,各切片文件的数据大小均小于或等于第一切片阈值。
在一些实时方式中,分布式文件上传装置还包括:第二调用子模块、第一比对子模块和第二切片子模块。其中,第二调用子模块用于调用预设的第二切片阈值;第一比对子模块用于将目标文件中的文件夹的大小与第二切片阈值进行比对;第二切片子模块用于当文件夹的大小小于等于第二切片阈值时,确认文件夹为切片文件。
在一些实时方式中,分布式文件上传装置还包括:第二比对子模块和第三切片子模块。其中,第二比对子模块用于当文件夹的大小大于第二切片阈值时,将从属于文件夹中的下级文件夹和/或独立文件的大小与第二切片阈值进行比对;第三切片子模块用于当下级文件夹和/或独立文件的大小小于第二切片阈值时,确认下级文件夹和/或独立文件为切片文件。
在一些实时方式中,分布式文件上传装置还包括:第一处理子模块和第一执行子模块。其中,第一处理子模块用于检测堆栈队列中是否存在操作任务线程;第一执行子模块用于当堆栈队列中存在操作任务线程时,中止执行上传任务线程,运行操作任务线程。
在一些实时方式中,当终端的中央处理器为多核处理器时,分布式文件上传装置还包括:第二处理子模块、第一计算子模块和第二执行子模块。其中,第二处理子模块用于检测堆栈队列中是否存在操作任务线程;第一计算子模块用于计算操作任务线程在堆栈队列中的占比;第二执行子模块用于当操作任务线程在堆栈队列中的占比大于预设的第一比较阈值时,分配中央处理器中的一个单核运行操作任务线程。
在一些实时方式中,分布式文件上传装置还包括:第一提取子模块和第三执行子模块。其中,第一提取子模块用于将上传任务线程对应的切片文件由硬盘空间提取至内存空间内;第三执行子模块用于将内存空间内的切片文件分配至网卡进行编码上传。
为解决上述技术问题,本发明实施例还提供计算机设备。具体请参阅图9,图9为本实施例计算机设备基本结构框图。
如图9所示,计算机设备的内部结构示意图。如图9所示,该计算机设备包括通过系统总线连接的处理器、非易失性存储介质、存储器和网络接口。其中,该计算机设备的非易失性存储介质存储有操作系统、数据库和计算机可读指令,数据库中可存储有控件信息序列,该计算机可读指令被处理器执行时,可使得处理器实现一种分布式文件上传方法。该计算机设备的处理器用于提供计算和控制能力,支撑整个计算机设备的运行。该计算机设备的存储器中可存储有计算机可读指令,该计算机可读指令被处理器执行时,可使得处理器执行一种分布式文件上传方法。该计算机设备的网络接口用于与终端连接通信。本领域技术人员可以理解,图9中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
本实施方式中处理器用于执行图8中获取模块2100、处理模块2200和执行模块2300的具体功能,存储器存储有执行上述模块所需的程序代码和各类数据。网络接口用于向用户终端或服务器之间的数据传输。本实施方式中的存储器存储有人脸图像关键点检测装置中执行所有子模块所需的程序代码及数据,服务器能够调用服务器的程序代码及数据执行所有子模块的功能。
计算机设备通过将上传的目标文件进行切片处理,将大数据文件切片形成若干个切片文件,每个切片文件的大小被分割为一个合适的大小,在进行上传时每一个切片文件对应的建立一个上传任务的线程,终端能够通过异步上传的方式,对若干个切片文件进行依次上传,由于采用异步上传的方式,终端在上传切片文件的间隙能够停止上传任务,执行优先级更高的其他操作任务,避免其他操作指令干扰造成的传输错误问题。同时多线程上传任务的设计,当终端为多核处理器时,每个核均能够独立的执行不同的上传任务线程,从终端处理速度方面提高了上传的效率。
本发明还提供一种存储有计算机可读指令的存储介质,所述计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行上述任一实施例所述分布式文件上传方法的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,该计算机程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,前述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)等非易失性存储介质,或随机存储记忆体(Random Access Memory,RAM)等。
应该理解的是,虽然附图的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。而且,附图的流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
Claims (10)
1.一种分布式文件上传方法,其特征在于,包括下述步骤:
获取待上传的目标文件;
将所述目标文件进行切片处理形成若干个切片文件;
针对所述若干个切片文件中的任一切片文件,对应所述切片文件生成一个上传任务线程,并将生成的上传任务线程添加至堆栈队列中以进行异步上传。
2.根据权利要求1所述的分布式文件上传方法,其特征在于,所述将所述目标文件进行切片处理形成若干个切片文件的步骤,具体包括下述步骤:
调用预设的第一切片阈值;
根据所述第一切片阈值将所述目标文件分割生成若干个切片文件,其中,各切片文件的数据大小均小于或等于所述第一切片阈值。
3.根据权利要求1所述的分布式文件上传方法,其特征在于,所述目标文件包括若干个文件夹;所述将所述目标文件进行切片处理形成若干个切片文件的步骤,具体包括下述步骤:
调用预设的第二切片阈值;
将所述目标文件中的文件夹的大小与所述第二切片阈值进行比对;
当所述文件夹的大小小于等于所述第二切片阈值时,确认所述文件夹为切片文件。
4.根据权利要求3所述的分布式文件上传方法,其特征在于,所述将所述目标文件中文件夹与所述第二切片阈值进行比对的步骤之后,还包括下述步骤:
当所述文件夹的大小大于所述第二切片阈值时,将从属于所述文件夹中的下级文件夹和/或独立文件的大小与所述第二切片阈值进行比对;
当所述下级文件夹和/或独立文件的大小小于所述第二切片阈值时,确认所述下级文件夹和/或独立文件为切片文件。
5.根据权利要求1所述的分布式文件上传方法,其特征在于,所述针对所述若干个切片文件中的任一切片文件,对应所述切片文件生成一个上传任务线程,并将生成的上传任务线程添加至堆栈队列中以进行异步上传的步骤之后,还包括下述步骤:
检测所述堆栈队列中是否存在操作任务线程;
当所述堆栈队列中存在操作任务线程时,中止执行所述上传任务线程,运行所述操作任务线程。
6.根据权利要求1所述的分布式文件上传方法,其特征在于,当终端的中央处理器为多核处理器时,所述针对所述若干个切片文件中的任一切片文件,对应所述切片文件生成一个上传任务线程,并将生成的上传任务线程添加至堆栈队列中以进行异步上传的步骤之后,还包括下述步骤:
检测所述堆栈队列中是否存在操作任务线程;
计算所述操作任务线程在所述堆栈队列中的占比;
当所述操作任务线程在所述堆栈队列中的占比大于预设的第一比较阈值时,分配所述中央处理器中的一个单核运行所述操作任务线程。
7.根据权利要求1所述的分布式文件上传方法,其特征在于,所述针对所述若干个切片文件中的任一切片文件,对应所述切片文件生成一个上传任务线程,并将生成的上传任务线程添加至堆栈队列中以进行异步上传的步骤之后,还包括下述步骤:
将所述上传任务线程对应的切片文件由硬盘空间提取至内存空间内;
将所述内存空间内的切片文件分配至网卡进行编码上传。
8.一种分布式文件上传装置,其特征在于,包括:
获取模块,用于获取待上传的目标文件;
处理模块,用于将所述目标文件进行切片处理形成若干个切片文件;
执行模块,用于针对所述若干个切片文件中的任一切片文件,对应所述切片文件生成一个上传任务线程,并将生成的上传任务线程添加至堆栈队列中以进行异步上传。
9.一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机可读指令,所述计算机可读指令被所述处理器执行时,使得所述处理器执行如权利要求1至7中任一项权利要求所述分布式文件上传方法的步骤。
10.一种存储有计算机可读指令的存储介质,所述计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行如权利要求1至7中任一项权利要求所述分布式文件上传方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810951750.5A CN109359099A (zh) | 2018-08-21 | 2018-08-21 | 分布式文件上传方法、装置、计算机设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810951750.5A CN109359099A (zh) | 2018-08-21 | 2018-08-21 | 分布式文件上传方法、装置、计算机设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109359099A true CN109359099A (zh) | 2019-02-19 |
Family
ID=65350173
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810951750.5A Pending CN109359099A (zh) | 2018-08-21 | 2018-08-21 | 分布式文件上传方法、装置、计算机设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109359099A (zh) |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110489242A (zh) * | 2019-09-24 | 2019-11-22 | 深圳前海微众银行股份有限公司 | 分布式数据计算方法、装置、终端设备及存储介质 |
CN111210884A (zh) * | 2019-12-31 | 2020-05-29 | 创业慧康科技股份有限公司 | 一种临床医疗数据采集方法、装置、介质及设备 |
CN111404990A (zh) * | 2020-02-14 | 2020-07-10 | Oppo(重庆)智能科技有限公司 | 文件传输方法、装置、客户端及存储介质 |
CN111444160A (zh) * | 2020-03-31 | 2020-07-24 | 南京领行科技股份有限公司 | 一种数据存储系统和上传、存储方法、装置、设备及介质 |
CN111586094A (zh) * | 2020-03-26 | 2020-08-25 | 平安养老保险股份有限公司 | 一种文件上传方法、装置及计算机设备 |
CN112134781A (zh) * | 2019-06-25 | 2020-12-25 | 广州慧睿思通信息科技有限公司 | 邮件数据处理方法、装置、计算机设备和存储介质 |
CN112379984A (zh) * | 2020-11-16 | 2021-02-19 | 神州融安科技(北京)有限公司 | 执行任务的方法、设备、电子设备及计算机可读存储介质 |
CN112492033A (zh) * | 2020-11-30 | 2021-03-12 | 深圳市移卡科技有限公司 | 文件传输方法、系统及计算机可读存储介质 |
CN112511650A (zh) * | 2020-12-22 | 2021-03-16 | 湖南新云网科技有限公司 | 一种视频上传方法、装置、设备及可读存储介质 |
CN113824771A (zh) * | 2021-08-25 | 2021-12-21 | 深圳市玩物科技有限公司 | 文件传输方法、装置、设备、存储介质及程序产品 |
CN114500506A (zh) * | 2022-01-21 | 2022-05-13 | 四川九洲空管科技有限责任公司 | 一种机载航电设备数据加载方法、系统及电子设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102710630A (zh) * | 2012-05-29 | 2012-10-03 | 新华网股份有限公司 | 一种多线程分片的云上传下载方法及系统 |
WO2017008611A2 (zh) * | 2015-07-15 | 2017-01-19 | 腾讯科技(深圳)有限公司 | 多媒体文件上传方法、装置以及存储介质 |
CN106603686A (zh) * | 2016-12-23 | 2017-04-26 | 郑州云海信息技术有限公司 | 一种基于分布式存储系统的文件传输方法 |
CN107959700A (zh) * | 2016-10-18 | 2018-04-24 | 中国电信股份有限公司 | 自适应文件下载的方法和云存储网关 |
-
2018
- 2018-08-21 CN CN201810951750.5A patent/CN109359099A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102710630A (zh) * | 2012-05-29 | 2012-10-03 | 新华网股份有限公司 | 一种多线程分片的云上传下载方法及系统 |
WO2017008611A2 (zh) * | 2015-07-15 | 2017-01-19 | 腾讯科技(深圳)有限公司 | 多媒体文件上传方法、装置以及存储介质 |
CN107959700A (zh) * | 2016-10-18 | 2018-04-24 | 中国电信股份有限公司 | 自适应文件下载的方法和云存储网关 |
CN106603686A (zh) * | 2016-12-23 | 2017-04-26 | 郑州云海信息技术有限公司 | 一种基于分布式存储系统的文件传输方法 |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112134781A (zh) * | 2019-06-25 | 2020-12-25 | 广州慧睿思通信息科技有限公司 | 邮件数据处理方法、装置、计算机设备和存储介质 |
CN110489242A (zh) * | 2019-09-24 | 2019-11-22 | 深圳前海微众银行股份有限公司 | 分布式数据计算方法、装置、终端设备及存储介质 |
CN110489242B (zh) * | 2019-09-24 | 2024-01-26 | 深圳前海微众银行股份有限公司 | 分布式数据计算方法、装置、终端设备及存储介质 |
CN111210884A (zh) * | 2019-12-31 | 2020-05-29 | 创业慧康科技股份有限公司 | 一种临床医疗数据采集方法、装置、介质及设备 |
CN111210884B (zh) * | 2019-12-31 | 2024-04-26 | 创业慧康科技股份有限公司 | 一种临床医疗数据采集方法、装置、介质及设备 |
CN111404990A (zh) * | 2020-02-14 | 2020-07-10 | Oppo(重庆)智能科技有限公司 | 文件传输方法、装置、客户端及存储介质 |
CN111404990B (zh) * | 2020-02-14 | 2023-06-02 | Oppo(重庆)智能科技有限公司 | 文件传输方法、装置、客户端及存储介质 |
CN111586094A (zh) * | 2020-03-26 | 2020-08-25 | 平安养老保险股份有限公司 | 一种文件上传方法、装置及计算机设备 |
CN111444160B (zh) * | 2020-03-31 | 2022-06-07 | 南京领行科技股份有限公司 | 一种数据存储系统和上传、存储方法、装置、设备及介质 |
CN111444160A (zh) * | 2020-03-31 | 2020-07-24 | 南京领行科技股份有限公司 | 一种数据存储系统和上传、存储方法、装置、设备及介质 |
CN112379984A (zh) * | 2020-11-16 | 2021-02-19 | 神州融安科技(北京)有限公司 | 执行任务的方法、设备、电子设备及计算机可读存储介质 |
CN112492033A (zh) * | 2020-11-30 | 2021-03-12 | 深圳市移卡科技有限公司 | 文件传输方法、系统及计算机可读存储介质 |
CN112511650A (zh) * | 2020-12-22 | 2021-03-16 | 湖南新云网科技有限公司 | 一种视频上传方法、装置、设备及可读存储介质 |
CN113824771A (zh) * | 2021-08-25 | 2021-12-21 | 深圳市玩物科技有限公司 | 文件传输方法、装置、设备、存储介质及程序产品 |
CN114500506A (zh) * | 2022-01-21 | 2022-05-13 | 四川九洲空管科技有限责任公司 | 一种机载航电设备数据加载方法、系统及电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109359099A (zh) | 分布式文件上传方法、装置、计算机设备及存储介质 | |
CN102469033B (zh) | 一种消息订阅系统以及消息发送方法 | |
US9619564B2 (en) | Method and system for providing recommended terms | |
US8468534B2 (en) | Dynamic priority queuing | |
US10306287B2 (en) | System and method for organizing multimedia content | |
CN105912402B (zh) | 一种基于Actor模型的调度方法及装置 | |
CN110135925B (zh) | 订单处理系统、方法和装置 | |
CN104468833B (zh) | 请求信息统一处理的方法和装置 | |
CN104881451A (zh) | 图片搜索方法及装置 | |
CN106488270A (zh) | 一种直播间切换的方法和装置 | |
CN105721612B (zh) | 数据传输方法和装置 | |
CN108965098A (zh) | 基于在线直播的消息推送方法、装置、介质和电子设备 | |
US8775637B2 (en) | Recording medium storing communication program, information processing apparatus, and communication procedure | |
US20160253219A1 (en) | Data stream processing based on a boundary parameter | |
US9300853B2 (en) | Network camera data management system and managing method thereof | |
CN109947759A (zh) | 一种数据索引建立方法、索引检索方法及装置 | |
CN110086848A (zh) | 网络请求的发送方法、装置、计算机设备及存储介质 | |
CN110620722B (zh) | 一种订单处理的方法和装置 | |
CN110928905A (zh) | 一种数据处理方法和装置 | |
CN108776622A (zh) | 数据同步方法、装置、计算机设备及存储介质 | |
CN116996112B (zh) | 一种遥感卫星数据实时预处理方法 | |
US20170041436A1 (en) | System and Method for the Sharing of Structured Tagged Content where all Content Originates from a Structured Content Management System | |
CN103902614B (zh) | 一种数据处理方法、设备和系统 | |
CN110838077B (zh) | 一种基于景区的游览管理方法 | |
US20130018987A1 (en) | Adaptive replication |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |