【发布时间】:2021-06-26 20:22:09
【问题描述】:
我们的架构具有仅运行 Sidekiq 工作进程的专用服务器,即没有应用服务器。我们正在进行一些模型缓存 - 模型内对 Rails.cache 的所有调用都指定了一个 expires_in 值,但没有清除过期的缓存。
有时磁盘 inode 会填满,因为 tmp/cache 永远不会被清理。
修复很简单 - 为 tmp:cache:clear 运行一个 cron 作业,但也许社区可以提供一些关于 Rails 如何清除过期模型缓存键的指导和理解,特别是当 Sidekiq 工作人员是唯一运行的东西时在服务器上。
【问题讨论】:
-
那么,缓存在磁盘上吗?不是redis?
-
没错——我们正在使用磁盘缓存。
标签: ruby-on-rails caching sidekiq