在Cygwin上的rsync --delay-updates不起作用?

时间:2013-01-31 23:10:20

标签: iis cygwin rsync

我正在尝试做什么:

我想将文件启动到基于.NET的网站。每当dll改变时,Windows都会回收Web应用程序。当我在应用程序上的rsync文件可以循环多次,因为延迟而不是首选的单个时间。这会使网站停止使用更长的时间。

我是如何解决的:

我试图通过使用--delay-updates来解决这个问题,它应该在更改它们之前暂存临时文件中的所有文件更改。这看起来正是我想要的,但是,给出--delay-updates参数看起来并不像宣传的那样。输出中没有可辨别的差异(使用-vv),结束行为相同(应用程序循环多次而不是一次)。

出于稳定性原因,我不想在所有生产机器上运行Cygwin,否则我可以rsync到本地暂存目录,然后执行本地rsync,这将足够快到“原子”。 / p>

我正在使用rsync 3.0.9运行Cygwin 1.7.17。

我遇到了atomic-rsync(http://www.opensource.apple.com/source/rsync/rsync-40/rsync/support/atomic-rsync),它通过rsyncing到登台目录,重命名现有目录,然后重命名登台目录来实现这一点。遗憾的是,这在Windows设置中不起作用,因为您无法重命名文件夹中包含正在运行的dll文件(权限被拒绝)。

您可以使用正在运行的二进制文件删除文件夹,但这会导致每次都回收应用程序,而不是仅在更新dll时更糟糕。

有谁知道如何

  1. 验证--delay-updates实际上是否正常工作
  2. 完成我的原子更新所有文件的目标(或者更确切地说,非常非常快)?
  3. 感谢您的帮助。

1 个答案:

答案 0 :(得分:2)

这很古老,但我最终发现--delay-updates 实际上是按预期工作的。由于其他因素,该应用程序似乎只是多次回收。