ale*_*x88 5 capistrano chef-infra symfony
在生产中,我们使用 amazon opsworks 来编排我们的机器。我创建了一个厨师配方来部署新代码(因此实际上创建了一个新的发布文件夹,在那里执行操作,然后将符号链接切换到新文件夹)和另一个配方,用于在添加新数据库从属时重新配置我们的 symfony 应用程序更改 yml 文件等等。
问题是重新配置阶段发生在当前运行的代码上,并且由于我必须运行缓存:清除和缓存:预热,因此请求同时失败,因为它们找不到缓存文件/文件夹。
如何立即清除缓存?也许在另一个文件夹中加热它然后切换它们?
更好的解决方案?
我自己发现cache:clear(没有--no-warmup)实际上在另一个文件夹中进行预热并在完成时交换它们。
我没有使用它的原因是由于不使用 --no-warmup && cache:warmup 时预热时出现一些库问题,现在似乎已解决。
让我们看看更改后情况如何,以及我是否不再遇到这些问题
更新:
我做了一些启动新机器的测试,在重请求负载下运行缓存:清除,到目前为止没有 php 警告/错误。
我认为这是解决我的问题的最终解决方案