php – 在生产中处理Symfony的缓存

我有一个Symfony2网站,我正在测试生产.我继续清理缓存,因为我已经制作并可能会进行更多修改,但是存在一个小问题:

当缓存被清除并说,之后我想热身,访问网站的人重建缓存.这会在构建缓存时产生一个小问题,但不会完全,而其中一半会被删除,因为删除仍在进行中.

之后发生的是,缓存是构建的,但只是其中的一部分. Symfony认为缓存是完全构建的,并且运行时不再尝试构建它,但它运行在半构建的缓存上.删除过程有点长(约15秒),因此在此时间范围内,任何人都必须通过访问网站来尝试创建缓存.

无论是,还是缓存是完全构建的,它都会覆盖旧缓存,系统会将这些新文件视为旧文件,删除部分文件,保留其他文件.不完全确定,我不确定如何检查这个.

例如,我得到的一个错误

The directory "D:\xampp\htdocs\med-app\app\app\cache\dev/jms_diextra/Metadata" does not exist.

如果我不使用该捆绑包,我会从Doctrine中获得另一个缓存问题.这将出现在每个网站访问,直到我再次删除缓存没有任何人访问该网站.它完全阻止访问网站并使其无法正常运行.

还有,热身怎么样?这也需要一段时间.如果有人在缓存预热时访问网站怎么办?这不会造成冲突吗?

怎么处理这个问题?我是否需要关闭apache服务,清除和加热缓存然后重启apache?如何处理生产中的网站?

编辑
我发现了一些有趣的东西.删除缓存/ prod文件夹时发生错误.如果我删除文件夹的内容而不删除文件夹本身,似乎不会发生错误.我想知道为什么.

通常,如果您正在执行更新,或者因生产中的任何其他原因清除缓存,则最好将网站锁定为维护模式.有时,Web托管服务有此选项可以为您处理此问题,或者有一个 nice bundle可以从命令行轻松处理维护.

这样您就可以安全地删除缓存,并确保没有人访问该页面错误地重建缓存.

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...