我开发了一个自定义搜索提供商CustomIndexProvider
,实施IIndexProvider
并取消Lucene.Services.LuceneIndexProvider
。出于某种原因,CacheManager总是在AcquireContext方法中执行实现,并且它不会缓存。
var mappingsFound = this.m_cacheManager.Get(cacheKey, ctx =>
{
////Logic goes here
return true/false;
});
我的实施出了什么问题?
我是否受此问题的影响https://orchard.codeplex.com/discussions/448781?
供参考:
CustomIndexProvider
调用DefaultProcessingEngine.Execute
。每当需要更新我的索引时,我都会创建一个IIndexingTaskManager.CreateUpdateIndexTask
任务。CustomIndexProvider
已为每项任务创建,即使它正在继承ISingletonDependency
。答案 0 :(得分:0)
导致此行为的一件事是,如果每次调用此代码时,您的cacheKey值都不同。