[发明专利]一种文件处理方法及装置有效
申请号: | 201910476837.6 | 申请日: | 2019-06-03 |
公开(公告)号: | CN110287159B | 公开(公告)日: | 2021-11-12 |
发明(设计)人: | 梁亚辉;卢鑫悦;李建平 | 申请(专利权)人: | 北京一览群智数据科技有限责任公司 |
主分类号: | G06F16/17 | 分类号: | G06F16/17;H04L29/08 |
代理公司: | 北京中创阳光知识产权代理有限责任公司 11003 | 代理人: | 尹振启 |
地址: | 100080 北京*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 文件 处理 方法 装置 | ||
本申请公开一种文件处理方法及装置,所述方法包括:监听FTP目录中是否有新增文件,若有新增文件,则判断是否有空闲的处理器资源;若有空闲的处理器资源,则将所述新增文件作为待处理文件移入所述处理器资源对应的文件夹,并将所述待处理文件的文件名、所述处理器资源的编号以及所述待处理文件的处理状态存入数据库中;创建一个子任务利用所述处理器资源对所述待处理文件进行处理,并将处理结果推送至Kafka服务器。
技术领域
本申请涉及一种文件处理方法及装置。
背景技术
Nodejs是单线程服务器技术,同一时刻只能处理一个文件,处理效率较低。如果用户端并发上传数据量巨大,那么就会造成服务器处理数据处理不过来,处理任务堵塞,导致服务器磁盘堆满,服务器故障等问题。
而在一些场景下,与某些第三方系统的信息交互过程中,往往是以文件形式进行数据交互的。所以需要服务器具有很强的并发文件处理能力,但是由于Nodejs是单线程的,因此不具备并行处理能力。
发明内容
为解决上述技术问题,本申请实施例提供了一种文件处理方法及装置。
本申请实施例提供的文件处理方法,包括:
监听FTP目录中是否有新增文件,若有新增文件,则判断是否有空闲的处理器资源;
若有空闲的处理器资源,则将所述新增文件作为待处理文件移入所述处理器资源对应的文件夹,并将所述待处理文件的文件名、所述处理器资源的编号以及所述待处理文件的处理状态存入数据库中;
创建一个子任务利用所述处理器资源对所述待处理文件进行处理,并将处理结果推送至Kafka服务器。
在一实施方式中,所述监听FTP目录中是否有新增文件,若有新增文件,则判断是否有空闲的处理器资源,包括:
Watch模块定时轮训FTP目录,以查看FTP目录中是否有新增文件,若有新增文件,则所述Watch模块将所述新增文件的文件名传递给调度模块;
所述调度模块收到所述新增文件的文件名后是否有空闲的处理器资源。
在一实施方式中,所述将所述新增文件作为待处理文件移入所述处理器资源对应的文件夹,包括:
调度模块判断是否存在所述处理器资源对应的文件夹;若不存在,则创建所述处理器资源对应的文件夹,并将所述待处理文件存入该文件夹;若存在,则直接将所述待处理文件存入该文件夹;
其中,所述处理器资源对应的文件夹的文件夹名包含所述处理器资源的编号。
在一实施方式中,所述创建一个子任务利用所述处理器资源对所述待处理文件进行处理,包括:
调度模块通过Fork启动子任务,并将所述待处理文件的文件名和所述处理器资源的编号传入所述子任务中;
所述子任务启动后根据所述待处理文件的文件名和所述处理器资源的编号,获取需要处理的文件路径,并更新所述数据库中所述待处理文件的处理状态为处理中,而后开始对所述待处理文件进行解析。
在一实施方式中,所述方法还包括:
所述子任务成功处理结束后,更新所述数据库中所述待处理文件的处理状态为已结束,并将处理过的文件移入已处理文件夹。
本申请实施例提供的文件处理装置,包括:
Watch模块,用于监听FTP目录中是否有新增文件;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京一览群智数据科技有限责任公司,未经北京一览群智数据科技有限责任公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910476837.6/2.html,转载请声明来源钻瓜专利网。