有没有办法在 Symfony 上自动清除缓存?

Posted

技术标签:

【中文标题】有没有办法在 Symfony 上自动清除缓存?【英文标题】:Is there a way to clear the cache automatically on Symfony? 【发布时间】:2021-11-17 20:30:31 【问题描述】:

我正在开发“旧版”Symfony(它使用的是 Symfony 4,但不再维护)。问题是缓存文件夹每天都在增长,几个月后就增加了 50GB。

它作为 DEV 环境运行,但由于最初的开发人员离开了公司,我们只想在 X 时间后“修补”清理缓存的问题,而不是将环境更改为生产环境(这可能会导致不同的问题,并且可能无法解决缓存问题),就像rotating Symfony logs 一样,您可以将 Symfony 配置为每天在不同的文件中记录并自动删除旧文件。

【问题讨论】:

【参考方案1】:

没有现成的方法可以在应用程序中执行此操作。

只是不时清除缓存。 (bin/console cache:clear)。您甚至可以将其安排为一个 cron 作业以在一夜之间运行,该过程通常最多只需要几秒钟。

确保您使用运行应用程序的同一用户运行命令(例如www-data,因为如果您以root 运行命令,缓存将使用错误的权限进行预热)。

请注意,在开发模式下运行生产系统本质上是危险的,因为它更有可能在意外情况下泄露配置数据。

【讨论】:

非常感谢您的回答!完全同意生产中的开发模式,但订单就是订单,它不是暴露的服务。稍后我会将其标记为已接受的答案,以防某些用户提出替代解决方案 很高兴它有帮助。真的没有其他办法,没有任何配置允许这样的事情。 你觉得default_lifetime参数怎么样?出现here 但当然没有解释。可以在默认缓存应用中使用吗? 时间到了不会清除缓存。缓存的项目将保留,但将是陈旧的。下次需要它会重新生成。 我明白了,谢谢!

以上是关于有没有办法在 Symfony 上自动清除缓存?的主要内容,如果未能解决你的问题,请参考以下文章

Symfony2 会话和缓存:清除命令

Symfony2 学说清除缓存

Symfony2禁用缓存?

PFImageView - 如何清除缓存?

Symfony 5 缓存:清除 php.CRITICAL:致命错误:允许的内存大小

Symfony 5.1.3 清除缓存时的问题:尝试从命名空间加载类“MappingDriverChain”