何时适合使用CacheItemRemovedCallback?

Cod*_*der 6 c# asp.net-mvc

我有一个每天更新一次的大型数据集.我正在缓存对该数据进行昂贵查询的结果,但我想每天更新该缓存.我正在考虑使用CacheItemRemovedCallback每天重新加载我的缓存,但我有以下问题:

  1. 是否可能在我的到期之前调用CacheItemRemovedCallback(在内存不足的情况下)?这意味着立即重新加载它似乎不是一个好主意.
  2. 是否在实际删除项目之前或之后调用CacheItemRemovedCallback?如果是之后,理论上这不会留下缓存不可用的时间段吗?

这些问题是否相关,如果使用CacheItemRemovedCallback重新加载缓存是一个坏主意,那么它何时有用?

Cod*_*der 2

根据大家的回复和进一步阅读,我得出以下结论:

我的担忧是有道理的。使用 CacheItemRemovedCallback 刷新缓存项并不是一个好主意。此回调的唯一实际用途似乎是记录有关缓存何时被删除的信息。

看来 CacheItemUpdateCallback 是定期刷新缓存的更合适的方法。

最终,我决定不使用这两个调用。相反,我将编写一个服务操作,以便数据库导入作业可以在需要刷新数据时通知我的应用程序。这完全避免了使用定时刷新。