0

面对这个奇怪的问题,如果我部署我的代码,甚至清除 xcache,那么代码也会调用一些旧文件。这种行为是随机的。我检查了 xcache ,每次都很清楚,但有时它仍然可以正常工作,然后再次尝试访问旧文件以及一些如何正常工作。这个问题不在于 js 或 css,因为我们为它们维护版本,但它是在 php 类和函数的情况下。

我根本没有从网络上得到任何想法,或者为什么会发生这种情况。我也尝试过触摸所有文件,但即使频率更高,也存在同样的问题。我正在使用带有 xcache 的 LAMP 环境并通过 capistrano 部署版本。我从其管理员那里验证了 xcache clear。尝试了不同版本的 xcache 但没有帮助。

可能是这种情况,但我也没有解决方案:如果我们的请求处理时间很长,我们会在两者之间部署和符号链接更改,如果此请求包含另一个文件,那么旧文件和新文件都会被包含在内导致问题。

请建议我可以进一步移动的地方。

4

1 回答 1

1

当您在使用文件时更改文件,您一定会遇到问题。

在切换符号链接之前,您需要完全停止应用程序。

在 Capistrano 社区中,这被称为“维护模式”。你可以找到很多关于实现这个概念的信息(在谷歌上)。

基本上,您将应用程序设置为“维护模式”,这将导致它在没有到达 PHP 的情况下阻止(Web)请求并停止任何长时间运行的进程(crons、守护进程等)。您如何实现这一点在很大程度上取决于您的应用程序的体系结构。

当应用程序完全空闲时,可以安全地切换符号链接,然后清除缓存,然后将其重新启动。

于 2014-07-10T06:52:09.297 回答