1
我正在研究使用jnotify检查更改的目录同步程序。如何在处理多个文件时进行inotify等待
这个想法是,只要jnotify检测到变化,就执行同步。问题是,当许多文件复制到目录或修改目录时,会执行许多同步而不是一个大同步。
理想的情况下,如果你是100个的大文件拷贝到目录中的,不会发生同步到目录B钮直至所有文件完全复制到目录A
我曾经想过,在某种程度上使用一个临时目录( A1)保存文件直到完全复制,然后将它们移动到A1中。但是这个解决方案不能正常工作,因为我正在使用unison来执行只发送文件增量的同步 - 这是我希望使用并且没有规避的功能。
也许有一种方法可以使用i/jnotify来检测多个文件一次更新吗?
感谢您的回复。到目前为止,我认为它可能会如下工作,直到找到更好的解决方案为止......每当发生一个操作(即 - CREATE)时,让侦听器线程等待1秒钟,以查看是否检测到另一个操作。如果未检测到任何操作,请执行同步。然后,一旦同步开始,推迟进一步的呼叫以同步到当前同步完成。如果文件保持同步,则在第一个文件之后执行另一个同步。这将强制同步成批小文件组。或者一次同步一个大文件。这似乎是合理的。 – Jono 2010-09-09 01:32:45
@Jono - 这似乎是合理的,我个人会有更长的延迟时间,但总的想法似乎是合理的,它需要一些工作来实现,但它是可行的。你将如何处理对文件的更改? (直接复制,或类似rsync) – Pharaun 2010-09-09 14:57:46
不知道你的意思是处理文件的更改。我将在整个目录中使用inotify来检查其中的任何更改。 – Jono 2010-09-18 12:30:31