我有一个每天更新一次的大型数据集。我正在缓存对该数据进行昂贵查询的结果,但我想每天更新该缓存。我正在考虑使用 CacheItemRemovedCallback 每天重新加载我的缓存,但我有以下问题:
- 是不是可以在我过期之前调用 CacheItemRemovedCallback(在内存不足的情况下)?这意味着立即重新加载它似乎不是一个好主意。
- CacheItemRemovedCallback 是在项目实际删除之前还是之后被调用?如果是之后的话,理论上这不是会留下一段时间缓存不可用吗?
这些问题是否相关?如果使用 CacheItemRemovedCallback 重新加载缓存是一个坏主意,那么它什么时候有用?
如果您要重新加载,请务必检查 CacheItemRemovedReason。我最近不得不调试一个问题,开发人员决定他们应该立即用这种方法重新填充缓存,在内存不足的情况下,它基本上会消耗 CPU,同时陷入构建缓存对象、添加它们的循环中到缓存,过期,重复。
回调被触发after该项目已被删除。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)