一种基于目录监控文件增量同步的方法及装置制造方法及图纸

技术编号:35272454 阅读:11 留言:0更新日期:2022-10-19 10:46
本发明专利技术公开了一种基于目录监控文件增量同步的方法及装置,所述方法包括如下步骤:步骤S1,设置监控目录路径,监控所述监控目录路径下的变更事件操作;步骤S2,获取步骤S1产生的变更事件,解析事件信息,并根据解析信息封装事件,插入第一线程安全队列;步骤S3,循环检测所述第一线程安全队列,获取该监控目录路径的文档操作事件信息并进行合并操作,并将合并操作结果存储到第二线程安全队列;步骤S4,获取所述第二线程安全队列的存储事件,发送对应事件到灾备端。事件到灾备端。事件到灾备端。

【技术实现步骤摘要】
一种基于目录监控文件增量同步的方法及装置


[0001]本专利技术涉及计算机容灾备份
,特别是涉及一种基于目录监控文件增量同步的方法及装置。

技术介绍

[0002]传统的目录文件监控同步,一般是基于系统API监控目录变更事件(增,删,该, 查),然后实时同步所有监控事件,实现文件级的增量同步。然而,由于文档编辑产生的监控事件差异性会造成数据的生命周期管理错误,同时也会产生大量的网络同步请求。

技术实现思路

[0003]为克服上述现有技术存在的不足,本专利技术之目的在于提供一种基于目录监控文件增量同步的方法及装置,以通过合并监控事件,降低网络传输交互并完整保留文件的生命周期。
[0004]为达上述目的,本专利技术提供一种基于目录监控文件增量同步的方法,包括如下步骤:步骤S1,设置监控目录路径,监控所述监控目录路径下的变更事件操作;步骤S2,获取步骤S1产生的变更事件,解析事件信息,并根据解析信息封装事件,插入第一线程安全队列;步骤S3,循环检测所述第一线程安全队列,获取该监控目录路径的文档操作事件信息并进行合并操作,并将合并操作结果存储到第二线程安全队列;步骤S4,获取所述第二线程安全队列的存储事件,发送对应事件到灾备端。
[0005]优选地,于步骤S1中,若所述监控目录路径下触发了增删改等文件或目录操作行为,则产生变更事件。
[0006]优选地,于步骤S2中,利用独立线程获取步骤S1 监控得到的变更事件, 解析所述变更事件,并根据解析结果封装事件,将封装后的事件插入第一线程安全队列,所述变更事件包含新建、 删除、 修改以及重命名事件操作。
[0007]优选地,步骤S3进一步包括:步骤S300,顺序获取该监控目录路径的文档操作事件信息,对当前获取的文档操作事件获取事件类型及对应的文档全路径;步骤S301,若当前获取的文档操作事件的事件类型为新建目录事件,则存储事件信息至所述第二线程安全队列;步骤S302,若当前获取的文档操作事件的事件类型为新建文件事件,则继续获取所述第一线程安全队列的下一条操作事件进行合并处理,存储事件合并结果至第二线程安全队列;步骤S303,若当前获取的文档操作事件的事件类型为修改目录事件, 则过滤掉该事件;
步骤S304,若当前获取的文档操作事件的事件类型为修改文件事件,则继续获取所述第一线程安全队列的下一条操作事件进行合并处理,并存储事件合并结果至所述第二线程安全队列;步骤S305,若当前获取的文档操作事件的事件类型为目录删除事件,则继续获取第一线程安全队列的下一条操作事件进行合并处理,并存储事件合并结果至第二线程安全队列;步骤S306,若当前获取的文档操作事件的事件类型为删除文件操作,则直接存储该事件信息到所述第二线程安全队列;步骤S307,若当前获取的文档操作事件的事件类型为重命名目录操作,则直接存储该事件信息到所述第二线程安全队列;步骤S308,若当前获取的文档操作时间的事件类型为重命名文件操作,则根据该重命名文件操作是否改变了扩展名进行事件处理,并将处理后的事件信息存储到所述第二线程安全队列。
[0008]优选地,于步骤S302中,若当前获取的文档操作事件的事件类型为新建文件事件则继续获取第一线程安全队列的下一条操作事件,若下一条操作事件为修改且对应文件为当前新建文件事件中的文件,则将该修改事件与新建事件合并为新建事件,并继续获取所述第一线程安全队列的下一个事件,循环往复,直至下一条事件操作对象不是该新建文件事件中的文件的修改事件为止,最后存储合并事件信息到所述第二线程安全队列。
[0009]优选地,于步骤S304中,若当前获取的文档操作事件的事件类型为修改文件事件,则继续获取所述第一线程安全队列的下一条事件,若下一条事件为修改操作且与当前修改文件事件的修改对象为同一文件,则合并两个事件为一个修改事件,继续获取所述第一线程安全队列的下一个事件,循环往复,直至下一个事件不与当前修改文件事件的修改对象为同一文件为止,最后存储合并事件信息到第二线程安全队列。
[0010]优选地,于步骤S305中,若当前获取的文档操作事件的事件类型为目录删除事件,继续获取所述第一线程安全队列的下一个事件,若该下一个事件是删除该目录或该目录下的文件操作,则合并两次目录删除操作事件,并存储删除事件信息到第二线程安全队列。
[0011]优选地,于步骤S308中, 若当前重命名文件操作的文件扩展名不改变,则直接存储该重命名事件信息到所述第二线程安全队列。
[0012]优选地,于步骤S308中,若当前重命名文件操作的文件扩展名进行了改变,则定义一个时间片,若在该时间片内将原改变的扩展名重命名回原扩展名,则合并重命名事件为后一次重命名事件的修改事件,否则将当前重命名文件事件,存储事件信息到第二线程安全队列。
[0013]为达到上述目的,本专利技术还提供一种基于目录监控文件增量同步的装置,包括:监控模块,用于设置监控目录路径,监控所述监控目录路径下的变更事件操作;事件解析模块,用于获取所述监控模块产生的变更事件,解析事件信息,并根据解析信息封装事件,插入第一线程安全队列;事件合并模块,用于循环检测所述第一线程安全队列,获取该监控目录路径的文档操作事件信息并进行合并操作,并将合并操作结果存储到第二线程安全队列;事件发送模块,用于获取所述第二线程安全队列的存储事件,发送对应事件到灾
备端。
[0014]与现有技术相比,本专利技术一种基于目录监控文件增量同步的方法及装置通过监控变更事件,解析后插入第一线程安全队列,通过循环检测所述第一线程安全队列,获取该监控目录路径的文档操作事件信息并进行合并操作,将合并操作结果存储到第二线程安全队列,最后获取第二线程安全队列的存储事件,发送对应事件到灾备端,通过合并监控事件,达到降低网络传输交互并完整保留文件的生命周期的目的。
[0015]附图说明
[0016]图1为本专利技术一种基于目录监控文件增量同步的方法的步骤流程图;图2为本专利技术一种基于目录监控文件增量同步的装置的系统结构图。
[0017]具体实施方式
[0018]以下通过特定的具体实例并结合附图说明本专利技术的实施方式,本领域技术人员可由本说明书所揭示的内容轻易地了解本专利技术的其它优点与功效。本专利技术亦可通过其它不同的具体实例加以施行或应用,本说明书中的各项细节亦可基于不同观点与应用,在不背离本专利技术的精神下进行各种修饰与变更。
[0019]图1为本专利技术一种基于目录监控文件增量同步的方法的步骤流程图。如图1所示,本专利技术一种基于目录监控文件增量同步的方法,应用于源端,包括如下步骤:步骤S1,设置监控目录路径,监控所述监控目录路径下的变更事件操作。
[0020]在本专利技术具体实施例中,设置监控目录路径,例如设置监控目录路径D:\monitor,如果该监控目录路径下触发了增删改等文件或目录操作行为,则产生变更事件。
[0021]步骤S2,获取步骤S1产生的变更事件,解析事件信息,并根据解析信息封装事件,插入第一线程安全队列FOQ。<本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于目录监控文件增量同步的方法,包括如下步骤:步骤S1,设置监控目录路径,监控所述监控目录路径下的变更事件操作;步骤S2,获取步骤S1产生的变更事件,解析事件信息,并根据解析信息封装事件,插入第一线程安全队列;步骤S3,循环检测所述第一线程安全队列,获取该监控目录路径的文档操作事件信息并进行合并操作,并将合并操作结果存储到第二线程安全队列;步骤S4,获取所述第二线程安全队列的存储事件,发送对应事件到灾备端。2.如权利要求1所述的一种基于目录监控文件增量同步的方法,其特征在于:于步骤S1中,若所述监控目录路径下触发了增删改等文件或目录操作行为,则产生变更事件。3.如权利要求1所述的一种基于目录监控文件增量同步的方法,其特征在于:于步骤S2中,利用独立线程获取步骤S1 监控得到的变更事件, 解析所述变更事件,并根据解析结果封装事件,将封装后的事件插入第一线程安全队列,所述变更事件包含新建、 删除、 修改以及重命名事件操作。4.如权利要求1所述的一种基于目录监控文件增量同步的方法,其特征在于,步骤S3进一步包括:步骤S300,顺序获取该监控目录路径的文档操作事件信息,对当前获取的文档操作事件获取事件类型及对应的文档全路径;步骤S301,若当前获取的文档操作事件的事件类型为新建目录事件,则存储事件信息至所述第二线程安全队列;步骤S302,若当前获取的文档操作事件的事件类型为新建文件事件,则继续获取所述第一线程安全队列的下一条操作事件进行合并处理,存储事件合并结果至第二线程安全队列;步骤S303,若当前获取的文档操作事件的事件类型为修改目录事件, 则过滤掉该事件;步骤S304,若当前获取的文档操作事件的事件类型为修改文件事件,则继续获取所述第一线程安全队列的下一条操作事件进行合并处理,并存储事件合并结果至所述第二线程安全队列;步骤S305,若当前获取的文档操作事件的事件类型为目录删除事件,则继续获取第一线程安全队列的下一条操作事件进行合并处理,并存储事件合并结果至第二线程安全队列;步骤S306,若当前获取的文档操作事件的事件类型为删除文件操作,则直接存储该事件信息到所述第二线程安全队列;步骤S307,若当前获取的文档操作事件的事件类型为重命名目录操作,则直接存储该事件信息到所述第二线程安全队列;步骤S308,若当前获取的文档操作时间的事件类型为重命名文件操作,则根据该重命名文件操作是否改变了扩展名进行事件处理,并将处理后的事件信息存储到所述第二线程安全队列。5.如权利要...

【专利技术属性】
技术研发人员:杨洪福陈勇铨周华
申请(专利权)人:上海英方软件股份有限公司
类型:发明
国别省市:

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

1