新文件/修改文件出现之前的延迟

新文件/修改文件出现之前的延迟

我看到两种不同的情况,其中在新文件或修改后的文件出现之前存在(随机?)延迟。

第一个案例是我的 Rails 开发环境:我修改代码文件(在 vim 中)并保存它,切换到我的 Web 浏览器并重新加载页面。 Rails 服务器注意到某些内容发生了变化并重新加载。一切都很好,除了有时修改后的文件会消失几秒钟,并且 Rails 会抱怨文件丢失。

第二种情况是我们生产环境中的Sphinx索引器。我有一个增量索引设置 - Sphinx 索引器创建新的索引文件并将它们合并到现有的索引文件中。一切都很好,除了时不时地(大约每 10 分钟一次)当索引器尝试读取一个新文件时,其中一个新文件不存在 - 与刚刚写入该文件的进程相同,并且知道它是一个事实那里。

在这两种情况下,文件都会在几秒钟后出现,看起来得意洋洋,好像什么都没发生一样。

任何人都可以解释这些,或者提供一些关于在哪里寻找解决方案的线索吗?

开发环境运行的是CentOS 6.3,我正在使用的文件系统是本地ext3。生产环境是Debian 7(wheezy),Sphinx索引文件位于本地ext4上。

答案1

这是 Vim 引起的问题。 Vim 在写出新文件之前删除这些文件。这与我使用的 Emacs(和 WingIDE 编辑器)形成鲜明对比。

我在测试新代码时运行的一个小型 python 实用程序注意到了这一点:它循环查看文件列表中的任何一个是否根据时间戳发生了更改,然后执行一些命令(通常检查 .py 文件,其中第一个)用作 python 的参数以进行测试运行)。

使用 emacs 或wingide 时没有问题,但是当我碰巧使用 vim 更改观察下的文件之一时,python 实用程序退出,因为它尝试检查的时间戳文件不存在。

相关内容