php – 如何有效地监视目录以获取Linux上的更改?

发布时间:2022-04-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了php – 如何有效地监视目录以获取Linux上的更改?脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在使用Magento,并且有一个函数将CSS和 Javascript合并为一个文件.

无论其优缺点如何,都存在以下问题:

最终文件缓存在多个级别,包括但不限于:

> amazon ClouDFront
>代理服务器
>客户端浏览器缓存

Magento使用连接的css文件名的MD5总和为合并的css文件生成新的文件名.因此,每个具有不同css文件集的页面都会获得正确的合并css文件.

为了解决缓存问题,我还将文件修改时间戳包含在该哈希中,以便每次修改css文件时都会生成新的哈希.

因此非重新验证缓存得分的全部优势,但如果某些内容发生变化,它立即可见,因为资链接已更改.

到现在为止还挺好:

唯一的问题是,用于生成has的文件名只是通常在HTML-Head块中直接引用的文件名,并且不包括这些文件中的css导入.

因此,在css文件中导入的文件中的更改不会导致新的哈希.

不,我真的不想递归解析所有输入并扫描它们或类似的东西.

我宁愿考虑基于目录的解决方案.有没有什么能够在文件系统的基础上有效地监视“目录内的最后一次更改”?

我们正在使用ext4.

或者是否有另一种方法,可能使用find命令,根据inode索引完成所有工作?

那样的东西?

我已经看到很多程序在不扫描整个文件系统的情况下立即“看到”更改.我相信linux下还有一些“文件操作监视”守护进程.

问题是css目录非常庞大.

谁能指出我正确的方向

我建议您使用独立于PHP的守护进程来修改主要css文件的更改日期,当修改其中一个相关的PHP文件时.您可以使用dnotify,例如:
dnotify -a -r -b -s /path/to/imported/css/files/ -e touch /path/to/main/css/file;

每当修改其他文件夹中的一个文件时,它将在主css文件上执行’touch'(-a -r -b -s =任何访问/递归目录查找/在后台/无输出中运行).或者您可以执行任何其他操作并从PHP进行测试.

脚本宝典总结

以上是脚本宝典为你收集整理的php – 如何有效地监视目录以获取Linux上的更改?全部内容,希望文章能够帮你解决php – 如何有效地监视目录以获取Linux上的更改?所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。