我有一个服务,我想在其上实现某种缓存,但我不确定我是否应该使用 .NET 4 的 ObjectCache 或者只是在服务上设置私有字段,一段时间后会刷新。
情况如下: 服务用于返回大块数据。目前,我们在数据库中查找对服务的每个请求的数据。此数据仅在每天午夜刷新一次。我想在服务上缓存这些数据,并在数据库更新后每晚刷新它(比如上午 12:30 左右)。
现在,在过去,我们将填充本地字段并创建一个“监控线程”,该线程将持续运行并在指定的时间后重新填充这些字段。我看到的一个缺点是服务类中有一些额外的代码用于存储。
如果我切换到 ObjectCache,一个好处是过期时自动删除。我想做的是为 CacheEntryRemovedCallback 委托分配一个回调方法,当它被调用时,只需在将来的某个时间重新缓存数据(刷新数据库后大约 30 分钟)。
我的问题是,对于 WCF 服务,缓存数据更理想的选择是什么?