我的应用程序使用广泛的rails缓存,并且所有缓存键都由同一个应用程序创建和使用,该应用程序拥有缓存文件夹的完全权限。
但是,偶尔当缓存变得特别大(在缓存过期窗口中使用大量上升)时,我在使用Rails.cache.fetch访问缓存片段时开始获得权限错误:
Permission denied @ unlink_internal
清除缓存“修复”问题,直到它再次变大。这样的缓存可能存在理论上的限制,还是可能存在其他原因?
答案 0 :(得分:0)
事实证明我对原因的评估是不正确的。我有一些任务是使用提升的权限运行,因此他们的缓存密钥是使用提升的权限编写的,并且由于缓存文件夹的随机生成方式,最终来自"主应用程序的缓存密钥"会尝试写在那里,但由于权限不能。确保同一用户运行所有相关任务解决了问题。