我有一个Azure网络应用程序,它使用内存缓存,按如下方式添加密钥
public static void Add(object item, string key)
{
var wrapper = new CacheItemWrapper()
{
InsertedAt = DateTime.Now,
Item = item
};
MemoryCache.Default.Add(key, wrapper, ObjectCache.InfiniteAbsoluteExpiration);
}
我们的应用程序的用户偶尔会进行更改,这需要刷新缓存。我可以调用一个清除缓存的方法,问题是,它只适用于获取请求的实例。其他实例在内存中仍然具有旧值。
我有什么方法可以做这些事情
a)跨多个实例运行方法,或 b)举起一个所有实例都在听的事件?
上面的代码可能会在短时间内更改为过期,以便所有实例都可以选择此代码。但是,更新缓存需要相当长的时间,这可能会影响性能。鉴于应用程序知道何时需要刷新缓存,如果可以通过编程方式完成,它会更好,响应更快。