面对这个奇怪的问题,如果我部署我的代码,甚至清除xcache,那么代码也会调用一些旧文件。这种行为是随机的。我检查了xcache,它每次都变得清晰,但仍然有时它工作正常然后再次尝试访问旧文件和一些如何正常。这个问题不是js或css,因为我们维护它们的版本,但它是在php类和函数的情况下。
我完全没有从网上得到任何想法或者为什么会发生这种情况。我也尝试触摸所有文件,但即使频率更高也存在同样的问题。 我正在使用带有xcache的LAMP环境并通过capistrano部署版本。我从其管理员那里验证了xcache clear。 尝试了不同版本的xcache但没有帮助。
可能是以下情况,但我也没有解决方案: 如果我们有一个很长的请求处理,我们会在两者之间进行部署和符号链接更改,如果此请求包含另一个文件,则包含旧文件和新文件都会导致问题。
请建议我可以继续前进的地方。
答案 0 :(得分:1)
当您在使用时更改文件时,您一定会遇到问题。
在切换符号链接之前,您需要完全停止应用程序。
在Capistrano社区,这被称为"维护模式"。您可以在Google上找到有关实施此概念的大量信息。
基本上,您将应用程序设置为"维护模式",这将导致它抵御(Web)请求而不会到达PHP并停止任何长时间运行的进程(crons,daemaons等)。如何实现这一点取决于您的应用程序架构。
当应用程序完全空闲时,可以安全地切换符号链接,然后清除缓存,然后再将其旋转。