一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种文件处理方法及装置与流程

2022-10-22 02:30:28 来源:中国专利 TAG:


1.本技术涉及信息处理技术领域,尤其涉及一种文件处理方法及装置。


背景技术:

2.近年来,随着数据量的高速增长,分布式数据库技术也得到了快速的发展,具体表现为将原来集中式数据库中的数据分散存储到多个通过网络连接的数据存储节点上,以获取更大的存储容量和更高的并发访问量。分布式数据库采用分库分表的方式对数据进行存储,将大数据表拆分至小文件处理。
3.现有技术中将大数据表拆分的小文件进行逐个独立加载,会造成海量文件同时访问系统资源,发生资源抢占,并且系统资源可能长时间被访问,影响其他正常文件的处理进程。
4.因此,如何提供一种不会造成资源抢占的文件处理方法,是本领域技术人员急需解决的技术问题。


技术实现要素:

5.有鉴于此,本技术实施例提供了一种文件处理方法及装置,旨在防止海量文件同时访问系统资源,发生资源抢占,并影响其他正常文件的处理进程。
6.第一方面,本技术实施例提供了一种文件处理方法,包括:
7.获取待处理文件,所述待处理文件为包含后缀的数据库文件;
8.依据第一规则,将所述待处理文件中包含指定后缀的文件移动到独立目录,所述第一规则用于指示指定尾缀的内容,所述独立目录中的文件用于合并后发送给数据库。
9.优选的,所述方法还包括:
10.依据第二规则,对所述独立目录中的文件进行合并,所述第二规则用于指示文件合并规则;
11.向数据库发送所述合并后的文件,所述数据库用于存储所述合并后的文件。
12.优选的,所述依据第二规则,对所述独立目录中的文件进行合并,包括:
13.依据第二规则,判断所述独立目录是否达到合并条件;
14.若是,对所述独立目录中的文件进行合并。
15.优选的,所述第二规则包括:
16.将所述独立目录中的文件合并为一个文件;
17.和/或根据时间范围对所述独立目录中的文件进行合并;
18.和/或根据数据区域范围对所述独立目录中的文件进行合并。
19.优选的,在获取待处理文件之前,所述方法还包括:
20.扫描文件接收目录,得到扫描文件;
21.判断所述扫描文件的命名格式是否符合第三规则,所述第三规则用于指示文件命名格式是否合规;
22.若是,将所述扫描文件确定为所述待处理文件;
23.若否,将所述扫描文件移动至错误目录。
24.第二方面,本技术实施例提供了一种文件处理装置,包括:
25.获取模块,用于获取待处理文件,所述待处理文件为包含后缀的数据库文件;
26.第一移动模块,用于依据第一规则,将所述待处理文件中包含指定后缀的文件移动到独立目录,所述第一规则用于指示指定尾缀的内容,所述独立目录中的文件用于合并后发送给数据库。
27.优选的,所述装置还包括:
28.合并模块,用于依据第二规则,对所述独立目录中的文件进行合并,所述第二规则用于指示文件合并规则;
29.发送模块,用于向数据库发送所述合并后的文件,所述数据库用于存储所述合并后的文件。
30.优选的,所述合并模块包括:
31.判断单元,用于依据第二规则,判断所述独立目录是否达到合并条件;
32.合并单元,用于对所述独立目录中的文件进行合并。
33.第三方面,本技术实施例提供了一种设备,所述设备包括存储器和处理器,所述存储器用于存储指令或代码,所述处理器用于执行所述指令或代码,以使所述设备执行前述第一方面任一项所述的文件处理方法。
34.第四方面,本技术实施例提供了一种计算机存储介质,所述计算机存储介质中存储有代码,当所述代码被运行时,运行所述代码的设备实现前述第一方面任一项所述的文件处理方法。
35.本技术实施例提供了一种文件处理方法。在执行所述方法时,先获取待处理文件,所述待处理文件为包含后缀的数据库文件,后依据第一规则,将所述待处理文件中包含指定后缀的文件移动到独立目录,所述第一规则用于指示指定尾缀的内容,所述独立目录中的文件用于合并后发送给数据库。这样,以指定规则将文件移到独立目录合并后再发送给数据库进行存储。如果每次合并的文件数量较多,在执行多次合并后,可以有效降低文件的数量。因此,在海量文件同时访问系统资源时,较少数量的文件不会发生资源抢占,同时也不会影响其他正常文件的处理进程。
附图说明
36.为更清楚地说明本实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
37.图1为本技术实施例提供的文件处理方法的一种方法流程图;
38.图2为本技术实施例提供的文件处理方法的另一种方法流程图;
39.图3为本技术实施例提供的文件处理的装置的一种结构示意图。
具体实施方式
40.近年来,随着数据量的高速增长,分布式数据库技术也得到了快速的发展,具体表现为将原来集中式数据库中的数据分散存储到多个通过网络连接的数据存储节点上,以获取更大的存储容量和更高的并发访问量。分布式数据库采用分库分表的方式对数据进行存储,将大数据表拆分至小文件处理。
41.现有技术中需要将大数据表拆分的小文件进行逐个独立加载,造成海量文件同时访问系统资源,发生资源抢占,并且系统资源可能长时间被访问,影响其他正常文件的处理进程。
42.本技术实施例提供的方法由计算机设备执行,用于在文件被数据库加载前,对文件进行处理。
43.作为一种可能的实施方式,所述实施例可以基于spring框架执行。spring是一个开源框架,是为了解决企业应用开发的复杂性而创建的。spring使用基本的javabean来完成以前只可能由ejb完成的事情。然而,spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何java应用都可以从spring中受益。spring是一个轻量级的控制反转(ioc)和面向切面(aop)的容器框架。从大小与开销两方面而言spring都是轻量的。完整的spring框架可以在一个大小只有1mb多的jar文件里发布。并且spring所需的处理开销也是微不足道的。此外,spring是非侵入式的,其应用中的对象不依赖于spring的特定类。所有spring的这些特征可以使用户编写更干净、更可管理、并且更易于测试的代码,为spring中的各种模块提供基础支持。
44.显然,所描述的实施例仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
45.参见图1,图1为本技术实施例提供的文件处理方法的一种方法流程图,包括:
46.步骤s101:获取待处理文件。
47.获取海量文件中的符合预设标准的文件,可以称之为获取待处理文件。海量文件是在传输过程中大数据表拆分而来的大量文件,预设标准是文件的初步校验标准,符合初步校验的文件才可以被称为待处理文件。其中,待处理文件是需要存储于数据库的文件。
48.考虑到数据库传输数据的特点,即大数据表会被拆分成小文件进行传输的特点,即将存入数据库的文件数量会很大。此时,如果海量文件同时访问系统资源,会发生资源抢占,并且系统资源可能长时间被访问,影响其他正常文件的处理进程。因此需要对获取的文件进行进一步处理,避免资源抢占。
49.步骤s102:依据第一规则,将所述待处理文件中包含指定后缀的文件移动到独立目录。
50.第一规则中会指出预设的后缀内容以及其对应的独立目录,用于引导指定后缀的文件被移动到指定的独立目录中。作为优选,同一独立目录中的文件可以都是后缀相同的文件,用于合并为同一文件,或者按照其他预设规则进行合并。在合并之后,所述合并后的文件会被发送给数据库。例如,步骤s101获取文件a,所述文件a是待处理文件,并且有后缀aaa。第一规则中指示后缀为aaa的文件移动到独立目录one中进行合并,因此,文件a会被移动到独立目录one中用于合并后发送给数据库。
51.在本实施例中,先获取待处理文件,所述待处理文件为包含后缀的数据库文件,后依据第一规则,将所述待处理文件中包含指定后缀的文件移动到独立目录,所述第一规则用于指示指定尾缀的内容,所述独立目录中的文件用于合并后发送给数据库。这样,以指定规则将文件移到独立目录合并后再发送给数据库进行存储。如果每次合并的文件数量较多,在执行多次合并后,可以有效降低文件的数量。因此,在海量文件同时访问系统资源时,较少数量的文件不会发生资源抢占,同时也不会影响其他正常文件的处理进程。
52.在本技术实施例中,上述图1所述的步骤存在多种可能的实现方式,下面分别进行介绍。需要说明的是,下文介绍中给出的实现方式仅作为示例性的说明,并不代表本技术实施例的全部实现方式。
53.参见图2,该图为本技术实施例提供的文件处理方法的另一种方法流程图,包括:
54.步骤s201:扫描文件接收目录,得到扫描文件。
55.文件接收目录可以接收各个系统送入数据库存储的文件。对所述文件接收目录进行扫描,可以得到所有需要存储的文件,避免文件的遗漏,可以初步对文件进行校验。例如,扫描文件接收目录获取文件a。
56.步骤s202:判断所述扫描文件的命名格式是否符合第三规则。
57.第三规则用于指示文件命名格式是否合规。由于文件命名不合规时是无法进行合并的,因此需要在合并前确定文件命名格式是否合规。若是,进入步骤s203;若否,进入步骤s209。例如,判断文件a的命名格式是否符合第三规则。
58.步骤s203:将所述扫描文件确定为所述待处理文件。
59.当扫描文件的命名格式合规时,意味着文件可以进行合并,因此将所述文件确定为待处理文件,便于下一步处理。例如,将所述文件a确定为所述待处理文件。
60.步骤s204:获取待处理文件。
61.获取海量文件中的符合预设标准的文件,可以称之为获取待处理文件。所述待处理文件是需要存储于数据库的文件。考虑到数据库传输数据的特点,即大数据表会被拆分成小文件进行传输的特点,即将存入数据库的文件数量会很大。此时,如果海量文件同时访问系统资源,会发生资源抢占,并且系统资源可能长时间被访问,影响其他正常文件的处理进程。因此需要对获取的文件进行进一步处理,避免资源抢占。例如,获取文件a,所述文件a是待处理文件,并且有后缀aaa。
62.步骤s205:依据第一规则,将所述待处理文件中包含指定后缀的文件移动到独立目录。
63.第一规则中会指出预设的后缀内容以及其对应的独立目录,用于引导指定后缀的文件到指定的独立目录。同一独立目录中的文件都是后缀相同的文件,可以用于合并为同一文件,或者按照其他预设规则进行合并,在合并之后,以合并文件的形式发送给数据库。例如,第一规则中指示后缀为aaa的文件移动到独立目录one中进行合并,因此,结合s101,文件a会被移动到独立目录one中用于合并后发送给数据库。
64.步骤s206:依据第二规则,判断所述独立目录是否达到合并条件。
65.合并的目的是将多个文件合并为一个文件,合并条件则用于指示独立目录开始合并的条件。
66.作为优选,可以将独立目录中文件的数量是否达到预设阈值来作为判断合并是否
开始的标准;也可以将文件名中是否出现包含结束标识作为判断合并是否开始的标准。
67.若满足合并条件,则对此独立目录中的文件夹进行合并,进入步骤s207;若不满足合并条件,则重新扫描文件接收目录,进入步骤s201。
68.例如,当所述独立目录one中只有文件a的时候,所述独立目录one没有达到合并条件,因此进入步骤s201,继续扫描得到更多的文件;循环执行后,当所述独立目录one中包括文件a、文件b、文件c三个文件的时候,所述独立目录one中文件的数量达到了预设阈值3,于是进入s207,对所述独立目录one的文件进行合并。
69.步骤s207:依据第二规则,对所述独立目录中的文件进行合并。
70.第二规则用于指示文件合并规则,包括独立目录中的文件应该对应的合并方式。具体的,所述合并方式包括:将所述独立目录中的文件合并为一个文件;和/或根据时间范围对所述独立目录中的文件进行合并;和/或根据数据区域范围对所述独立目录中的文件进行合并。
71.作为一种可能的实施方式,所述合并可以利用java nio,因为java nio的缓冲导向方法与java io不同。数据会被读取到一个稍后处理的缓冲区,必要时可在缓冲区中前后移动。这就增加了处理过程中的灵活性。比起面向流的i/o系统,系统一次一个字节地处理数据,一个输入流产生一个字节的数据,一个输出流消费一个字节的数据,面向流的i/o速度非常慢,而java nio是一个面向块的i/o系统,系统以块的方式处理处理,每一个操作在一步中产生或者消费一个数据库,按块处理要比按字节处理数据快的多,进一步使用java nio连接到文件的通道filechannel可以进一步读写文件。
72.例如,第二规则中指出后缀为aaa的文件对应的合并方式为将所述独立目录one的文件合并为一个文件。因此依据第二规则,对所述独立目录one的文件进行合并,具体表现为将文件a、文件b、文件c三个文件合并为一个文件,即文件one。
73.作为一种可能的实施方式,因为在同一时刻可能有多个独立目录达到合并条件,此时,可以采用异步并发处理的方式。异步与同步是一对概念,在方法调用的时候,如果我们等待方法调用的返回则是同步,不等待而继续执行程序流则是异步。从处理器的角度来看,有些操作消耗的时间,远远高于其运行指令的时间,比如从网络获取数据,写入文件到磁盘等。如果采用同步方式,则大大的浪费了处理器的计算能力。在io密集型的应用里,异步调用成为提高软件性能的关键方法。异步调用的关键点在于分流和回调执行起点。分流就是在当前代码位置,将一部分代码加入到条件达成后未来的回调执行流中,而另一部分代码则在当前程序流继续执行。回调执行起点通常为一个条件达成后来自操作系统的通知或者程序内部的消息(事件)。该事件会出发一个回调执行起点方法,去逆向执行回调流中的各个方法。并发的的实现通常有进程并发,线程并发,协程并发(用户态非抢占式执行单元),在分布式系统中存在网络级并发。
74.步骤s208:向数据库发送所述合并后的文件。
75.作为一种可能的实施方式,在向数据库发送所述合并后的文件之前,可以对合并后的文件进行转码和/或校验,以此来适用于不同的数据库存储方式。例如,将文件one进行转码后校验,若通过校验则向数据库发送转码和校验后的文件one。
76.步骤s209:将所述扫描文件移动至错误目录。
77.当扫描文件的命名格式不合规时,意味着文件不可以进行合并,因此将所述扫描
文件移动至错误目录,便于后续对文件进行校正或其他操作。例如,将所述文件a确定移动至错误目录。
78.在执行所述方法时,先获取待处理文件,所述待处理文件为包含后缀的数据库文件,后依据第一规则,将所述待处理文件中包含指定后缀的文件移动到独立目录,所述第一规则用于指示指定尾缀的内容,所述独立目录中的文件用于合并后发送给数据库。这样,通过指定规则将文件移到独立目录合并发送给数据库,可以有效降低文件的数量。因此,在海量文件同时访问系统资源时,不会发生资源抢占,并且不会影响其他正常文件的处理进程。
79.以上为本技术实施例提供文件处理方法的一些具体实现方式,基于此,本技术还提供了对应的装置。下面将从功能模块化的角度对本技术实施例提供的装置进行介绍。
80.参见图3所示的文件处理装置300的结构示意图,该装置300包括获取模块301和第一移动模块302。
81.获取模块301,用于获取待处理文件,所述待处理文件为包含后缀的数据库文件;
82.第一移动模块302,用于依据第一规则,将所述待处理文件中包含指定后缀的文件移动到独立目录,所述第一规则用于指示指定尾缀的内容,所述独立目录中的文件用于合并后发送给数据库。
83.所述文件处理装置还包括:
84.合并模块,用于依据第二规则,对所述独立目录中的文件进行合并,所述第二规则用于指示文件合并规则;
85.发送模块,用于向数据库发送所述合并后的文件,所述数据库用于存储所述合并后的文件。
86.所述合并模块包括:
87.判断单元,用于依据第二规则,判断所述独立目录是否达到合并条件;
88.合并单元,用于对所述独立目录中的文件进行合并。
89.所述第二规则包括:
90.将所述独立目录中的文件合并为一个文件;
91.和/或根据时间范围对所述独立目录中的文件进行合并;
92.和/或根据数据区域范围对所述独立目录中的文件进行合并。
93.所述文件处理装置还包括:
94.扫描模块,用于扫描文件接收目录,得到扫描文件;
95.判断模块,用于判断所述扫描文件的命名格式是否符合第三规则,所述第三规则用于指示文件命名格式是否合规;
96.确定模块,用于将所述扫描文件确定为所述待处理文件;
97.第二移动模块,用于将所述扫描文件移动至错误目录。
98.本技术实施例还提供了对应的设备以及计算机存储介质,用于实现本技术实施例提供的方案。
99.其中,所述设备包括存储器和处理器,所述存储器用于存储指令或代码,所述处理器用于执行所述指令或代码,以使所述设备执行本技术任一实施例所述的文件处理方法。
100.所述计算机存储介质中存储有代码,当所述代码被运行时,运行所述代码的设备实现本技术任一实施例所述的文件处理方法。所述代码可以用任何适当的介质传输,包括
但不限于无线、电线、光缆、rf等等,或者上述的任意合适的组合。
101.可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如java、smalltalk、c ,还包括常规的过程式程序设计语言—诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(lan)或广域网(wan)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
102.本技术实施例中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
103.通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到上述实施例方法中的全部或部分步骤可借助软件加通用硬件平台的方式来实现。基于这样的理解,本技术的技术方案可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如只读存储器(英文:read-only memory,rom)/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者诸如路由器等网络通信设备)执行本技术各个实施例或者实施例的某些部分所述的方法。
104.本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
105.以上所述仅是本技术示例性的实施方式,并非用于限定本技术的保护范围。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献