[英]enterprise library caching - remove objects from outside process (console app)
我们正在考虑在asp.net 3.5应用程序中使用企业库缓存框架来存储最受欢迎产品的小型数据表。
如果需要,是否可以编写外部过程(例如控制台应用程序)以删除这些数据表? 例如,客户可以进入并更新产品的数据,这将使存储在缓存中的数据表过期。 发生这种情况时,我希望外部应用程序进入缓存并使用新数据删除甚至更新缓存。
我可以想到两种从进程中删除缓存项的方法。
第一种是在将项目添加到缓存时使用FileDependency
。 当您要使缓存项过期时,请修改文件。
DataTable books = GetTopBooks();
ICacheManager cacheManager = CacheFactory.GetCacheManager();
cacheManager.Add("books", books, CacheItemPriority.NotRemovable, new BookCacheRefreshAction(),
new FileDependency("books.xml"));
然后,外部进程可以通过修改磁盘上的相应文件(在本例中为books.xml)来使DataTable过期。 您还可以配置ICacheItemRefreshAction以在缓存过期时刷新(例如,从数据库中)缓存。
如果基于某种原因,基于文件的方法不够用,那么第二种方法是创建可由进程外应用程序调用的自定义接口。 例如,创建一个将从缓存中删除项目并可能刷新缓存项目的Web服务。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.