Symfony:清除缓存而不中断服务

Symfony:清除缓存而不中断服务,symfony,capistrano,chef-infra,Symfony,Capistrano,Chef Infra,在生产中,我们使用amazon opsworks来协调我们的机器。我已经创建了一个厨师配方来部署新代码(因此实际上创建了一个新的发布文件夹,在那里做一些事情,然后将symlink切换到新文件夹)和另一个配方来重新配置我们的symfony应用程序,在添加新的数据库从属服务器时更改yml文件,等等 问题是,重新配置阶段发生在当前运行的代码上,由于我必须运行cache:clear和cache:warmup,同时请求失败,因为它们找不到缓存文件/文件夹 如何立即清除缓存?也许在另一个文件夹中预热,然后切

在生产中,我们使用amazon opsworks来协调我们的机器。我已经创建了一个厨师配方来部署新代码(因此实际上创建了一个新的发布文件夹,在那里做一些事情,然后将symlink切换到新文件夹)和另一个配方来重新配置我们的symfony应用程序,在添加新的数据库从属服务器时更改yml文件,等等

问题是,重新配置阶段发生在当前运行的代码上,由于我必须运行cache:clear和cache:warmup,同时请求失败,因为它们找不到缓存文件/文件夹

如何立即清除缓存?也许在另一个文件夹中预热,然后切换这些文件夹


更好的解决方案?

我自己发现cache:clear(没有——没有预热)实际上在另一个文件夹中进行预热,并在完成时交换

我之所以不使用它,是因为在不使用时出现了一些关于预热的库问题--no warmup&&cache:warmup,现在似乎已经解决了

让我们看看这一变化后情况如何,如果我不再遇到这些问题

更新:

我做了一些启动新机器的测试,在请求负载很重的情况下运行cache:clear,到目前为止没有php警告/错误


我认为这是我问题的最终解决方案

由于一些问题(不一致和非原子:),这里提出的解决方案后来被弃用。但是,在Symfony guys对原始问题进行了修复之后,它再次被取消了。很显然,我们都可以回到以前使用过的东西,正如你在发现中提到的。