有没有办法在 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 上自动清除缓存?的主要内容,如果未能解决你的问题,请参考以下文章