一种实时处理远程同步文件的方法技术

技术编号:15763029 阅读:88 留言:0更新日期:2017-07-05 23:45
本发明专利技术提供了一种实时处理远程同步文件的方法,所述方法包括如下步骤:从远程主机同步文件到指定目标文件夹;对所述目标文件夹进行文件操作监控;对目标监控行为进行检查,如检查出被操作文件符合要求的,将文件路径作为消息发送到消息系统;多个文件处理实例从消息系统获取消息,所述消息包括:文件路径,执行具体的文件处理操作。本发明专利技术提供的技术方案具有较高地效率完成了消息分发和文件处理的任务的优点。

Method for processing remote synchronous file in real time

The invention provides a method for real-time processing of remote file synchronization, the method comprises the following steps: from the remote host to synchronize files to the specified destination folder; file operation monitoring on the target folder; to check the target monitoring behavior, such as check out by file operation to meet the requirements, will be sent to the file path as message system messages; a plurality of document processing instance to get message from the message system, the message including the file path, the implementation of specific document processing operations. The technical proposal provided by the invention has high efficiency and completes the task of message distribution and document processing.

【技术实现步骤摘要】
一种实时处理远程同步文件的方法
本专利技术涉及通信领域,尤其涉及一种实时处理远程同步文件的方法及系统。
技术介绍
为了分析用户偏好以进行营销等,需要使用大量的用户行为数据,目前在公交车、购物中心、广场等公共场所一般安装WIFI设备,提供免费上网入口,从而得到用户行为数据。尽管单台移动上网设备接入到WIFI设备产生的数据量不大,但在人流量大的公共场所,接入的移动上网设备多,导致需要处理的数据量也日益增加。因为WIFI设备不仅要为接入的移动上网设备提供上网冲浪服务,还要上传用户行为日志记录,如果将WIFI设备采集到的数据直接上传到服务器,会对WIFI设备的网络带宽有很高的要求,对于使用移动网络提供上网服务的WIFI设备而言,可用的带宽资源就更加窘迫,为了能够减少数据传输所需的带宽和消耗的流量,提高数据上传的速度,一般会在数据上传之前对数据进行压缩打包处理。对数据压缩打包解决了数据传输的问题,但引来了新的问题。为了使用这些数据,需要对压缩文件进行解压以及相关的预处理,而为了提高数据的实时性,一般数据压缩上传的间隔设定比较短,如5分钟,使得产生了大量需要待处理的压缩文件。现有的常用方案是等待当天文件传输完毕后,启动离线批处理的程序对全部文件进行一次性解压,这种方法简单,且无需做其他的特殊处理,但受到网络的限制,等待文件同步完成常需要较长的时间,而这个时间点不可预知。等待所有文件传输完毕才能执行操作,这使得数据利用有较大的时延;另一种方法是每间隔一段时间查找获得当前目录下的文件列表,对比上一时间扫描得到的文件列表,对新增的文件进行解压,当文件数量较少时,该方法可以做到接近实时,设置的关键在于间隔时长,但随时间推移,文件数量增加,扫描的时间增长,对比需要花费的时间也随之增加,使得检测新增文件消耗不少资源。目前现有技术提供的方法是等待文件传输完毕执行离线批处理或者通过间断扫描目标目录对检测到的新文件进行处理。前者是一种较为直接的方法,但只适合于对实时需求不高,且离线批处理性能较优时使用。后者提供了一个接近实时的处理方法,但其伴随产生了额外不断增长的资源消耗。
技术实现思路
提供一种实时处理远程同步文件的方法,其解决了现有技术的无法实时处理文件以及增加额外的资源消耗的缺点。一方面,提供一种实时处理远程同步文件的方法,所述方法包括如下步骤:从远程主机同步文件到指定目标文件夹;对所述目标文件夹进行文件操作监控;对目标监控行为进行检查,如检查出被操作文件符合要求的,将文件路径作为消息发送到消息系统;多个文件处理实例从消息系统获取消息,所述消息包括:文件路径,执行具体的文件处理操作。可选的,所述从远程主机同步到指定目标文件夹具体,包括:使用Linux系统上的远程同步命令rsync将所述远程主机同步到指定目标文件夹。可选的,所述对所述目标文件夹进行文件操作监控具体,包括:使用基于Linux系统上inotify功能开发的python库pyinotify对所述目标文件进行操作监控。可选的,所述从远程主机同步到指定目标文件夹具体,包括:将每天的数据分别同步到对应的指定目标文件夹。可选的,所述方法还包括:将日期作为主题,将该主题划分成多个分块。可选的,所述多个文件处理实例从消息系统获取消息具体,包括:使用多个进程从所述消息系统的一个主题的不同分块获取消息。可选的,所述对目标监控行为进行检查,如检查出被操作文件符合要求的,将文件路径作为消息发送到消息系统具体,包括:实时将被监控文件夹内的文件操作进行条件判断,将符合目标要求的操作记录的文件路径发送到消息系统。可选的,所述执行具体的文件处理操作具体,包括:使用并行算法执行具体的文件处理操作。本专利技术具体实施方式提供的技术方案从数据流架构上实现了数据流的隔离划分、从多个层次提高数据处理的并行化、解决数据处理速度慢导致消息队列溢出的问题,以较高地效率完成了消息分发和文件处理的任务。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本专利技术提供的一种实时处理远程同步文件的方法的流程图;图2为本专利技术提供的文件操作的流程图。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。参阅图1,图1为本专利技术第一较佳实施方式提供的一种实时处理远程同步文件的方法,该方法由数据处理服务器完成,该数据处理服务器可以为如计算机、服务器等具有逻辑处理功能的设备,该方法如图1所示,包括如下步骤:步骤S101、从远程主机同步到指定目标文件夹;步骤S101的实现方法具体可以包括:使用Linux系统上的远程同步命令rsync实现数据接收服务器(即远程主机)和数据处理服务器的文件同步功能。参照图2,在同步过程中,rsync的文件操作的方法如图2所示,包括如下步骤:步骤S201、创建临时文件;步骤S202、打开临时文件;步骤S203、向临时文件写入;步骤S204、关闭临时文件;步骤S205、修改临时文件属性;步骤S206、重命名临时文件(即移动临时文件)。上述图2中各个步骤的实现方法可以参见Linux系统上远程同步命令rsync的介绍,这里不再赘述。步骤S102、对目标文件夹进行文件操作监控;上述步骤S103的实现方法具体可以为:文件监控功能使用基于Linux系统上inotify功能开发的python库pyinotify,根据如图2所示的描述,单个文件同步完成的标志是文件移动(临时文件重命名为目标文件)指定监控的文件夹后,对于文件的移动操作会触发自定义的函数,对文件进行处理,对于文件夹同步,可以实现自动将子目录下的文件夹自动添加到监控文件夹列表中。由于文件处理速度一般比文件同步速度慢,随着时间的推移,待处理的文件队列很快就会溢出,因此本专利技术在处理函数中并不执行实质的处理操作,而是将文件路径发送到消息系统。S103、对目标监控行为进行检查,如检查出被操作文件符合要求的,将文件路径作为消息发送到消息系统。上述步骤S103的实现方法具体可以为,消息系统功能使用Kafka作为文件路径的缓存,对远程同步文件夹进行文件操作监控。具体为,文件监控功能使用基于Linux系统上inotify功能开发的python库pyinotify,根据所述S101中的描述,单个文件同步完成的标志是文件移动(临时文件重命名为目标文件)。指定监控的文件夹后,对于文件的移动操作会触发自定义的函数,对文件进行处理。对于文件夹同步,可以实现自动将子目录下的文件夹自动添加到监控文件夹列表中。由于文件处理速度一般比文件同步速度慢,随着时间的推移,待处理的文件队列很快就会溢出,因此本专利技术在处理函数中并不执行实质的处理操作,而是将文件路径发送到消息系统。Kafka有主题、分块、生产者、消费者等概念:一个主题是消息发布到的一个类别或订阅名称;本文档来自技高网
...
一种实时处理远程同步文件的方法

【技术保护点】
一种实时处理远程同步文件的方法,其特征在于,所述方法包括如下步骤:从远程主机同步文件到指定目标文件夹;对所述目标文件夹进行文件操作监控;对目标监控行为进行检查,如检查出被操作文件符合要求的,将文件路径作为消息发送到消息系统;多个文件处理实例从消息系统获取消息,所述消息包括:文件路径,执行具体的文件处理操作。

【技术特征摘要】
1.一种实时处理远程同步文件的方法,其特征在于,所述方法包括如下步骤:从远程主机同步文件到指定目标文件夹;对所述目标文件夹进行文件操作监控;对目标监控行为进行检查,如检查出被操作文件符合要求的,将文件路径作为消息发送到消息系统;多个文件处理实例从消息系统获取消息,所述消息包括:文件路径,执行具体的文件处理操作。2.根据权利要求1所述的方法,其特征在于,所述从远程主机同步文件到指定目标文件夹具体,包括:使用Linux系统上的远程同步命令rsync将所述远程主机文件同步到指定目标文件夹。3.根据权利要求1所述的方法,其特征在于,所述对所述目标文件夹进行文件操作监控具体,包括:使用基于Linux系统上inotify功能开发的python库pyinotify对所述目标文件进行文件操作监控。4.根据权利要求1所述...

【专利技术属性】
技术研发人员:江满华杨望仙范小朋张帆须成忠
申请(专利权)人:中国科学院深圳先进技术研究院
类型:发明
国别省市:广东,44

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

1