繁体   English   中英

Symfony 2部署-缓存处理

[英]Symfony 2 deployment - cache handling

我正在按照此链接上的说明部署我的symfony2应用程序。

我的问题与步骤D密切相关

D)清除您的Symfony缓存确保清除(并预热)您的Symfony缓存:

$ php app/console cache:clear --env=prod --no-debug

当我运行该命令时,将清除所有symfony缓存,包括主义缓存。 我的应用程序高度依赖于理论缓存的数据,因此我想知道是否存在一种避免每次部署时清除理论缓存的方法。 例如,我可能只在应用程序代码中部署了一些小错误修复程序,是否有必要每次都清除缓存? 如果在较小的错误修复后不清除缓存,将会发生什么情况?

只是为了添加更多上下文,我的主要问题是教义缓存。 因为教义缓存存储在symfony主缓存文件夹中,并且cache:clear会转储该文件夹,所以我也失去了教义缓存。 如果我可以将学说缓存与主缓存文件夹(设置自定义路径)分开,那将解决我的问题。

也许您可以使用自动部署系统作为Capifony ,它的设置和创建“发布”确实非常简单。

这意味着在部署时,该应用程序将存储到一个新的独立文件夹中,将安装供应商,将资产转储并清除缓存。 仅在完成这些过程后,此文件夹才用于生产,因此您无需停机

强烈建议每次清除缓存。 例如,您创建一个依赖的新类。 如果您不清除缓存,则自动加载器不会加载新类。 当然,仅在生产模式下,因为开发人员的自动加载逻辑有所不同。

但是,您的问题没有一个单一的答案-应用程序的某些行为与缓存“新鲜度”有关。 您必须在数据库/实体结构更改,路由和类结构,注释,配置上清除它。 在prod env中,对它​​们进行了预处理以提高性能-缓存后,原始值(配置/路由)一直未使用,直到下一次缓存清除为止。

例如,当您进行一些设计修复时,您无需清除所有缓存。 您可以转到缓存目录,然后手动删除仅要删除的那些缓存文件,并保持Doctrine缓存不变。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM