通过Windows文件共享访问时,长时间延迟直到文件夹出现


1

我们有一个应用程序,它在远程机器上创建一个包含文件的文件夹,以及一个python脚本,它使用其完整的UNC名称从本地计算机中查找此文件夹并进行相应的响应(例如,脚本\\remote-host\D$\our_cool_application_output_folder从本地主机查找该文件夹))。

远程计算机上此文件夹的实际外观存在显着延迟(大约5秒),直到脚本可以看到它。它会损害我们应用程序的性能。在延迟期间,脚本会尝试重复访问此文件夹(每秒4次),直到成功为止。

有没有办法让本地机器更快地看到远程文件夹?有没有办法将这个“更新时间”减少到几毫秒?


你可以重写Windows的部分内容......
Ignacio Vazquez-Abrams 2012年

Answers:


0

不要反复检查文件,而是要求Windows在使用FindFirstChangeNotification到达时立即通知您。通过重复检查文件,可以强制将文件不存在到缓存中,从而防止文件被注意到。

Windows只会经常检查,重定向器有一个缓存。您可以做的最糟糕的事情就是在文件出现之前询问它。这可确保您必须等待整个负缓存有效性间隔才能找到该文件。

您可以禁用其中一些缓存,但批量文件I / O的性能将受到严重影响。真的,你不应该这样使用文件。


除了Windows文件共享之外,您知道我们可以用来监视文件的任何其他方式吗?
Alex Shtof

我建议使用FindFirstChangeNotification,运行程序来监视服务器本身的文件,或者根本不使用文件。
大卫施瓦茨
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.