2015-04-27 4 views
0

Я разработал пользовательский поисковый провайдер CustomIndexProvider, реализующий IIndexProvider и подавляющий Lucene.Services.LuceneIndexProvider. По какой-то причине CacheManager всегда выполняет реализацию внутри метода AcquireContext и не кэширует.ICacheManager не работает в соответствии с реализацией ISingletonDependency

var mappingsFound = this.m_cacheManager.Get(cacheKey, ctx => 
      { 
       ////Logic goes here 
       return true/false; 
      }); 

Что происходит с моей реализацией?

Я затронутый проблемой https://orchard.codeplex.com/discussions/448781?

FYI:

  1. CustomIndexProvider получает вызывается из DefaultProcessingEngine.Execute. Я создаю задачу IIndexingTaskManager.CreateUpdateIndexTask всякий раз, когда вам нужно обновить мой индекс.
  2. Я также нашел CustomIndexProvider, созданный для каждой задачи, хотя он наследует ISingletonDependency.
+0

Не могли бы вы опубликовать реализацию? – mberacochea

+0

@martinbc Пожалуйста, ознакомьтесь с обновленным вопросом. Может быть, проблема в другом месте. – Ahuman

ответ

0

Одна вещь, которая могла бы вызвать такое поведение, заключается в том, что значение вашего кеша отличается от каждого вызова этого кода.