Nopcommerce PerRequestCacheManager против MemoryCacheManager

1

Я работаю над NopCommerce 2.40. Я хочу установить кеш на домашней странице с помощью CacheManager.

    var cacheModel = _cacheManager.Get(cacheKey, () =>
                {
                    var model = new HomePageProductsModel()
                     {
                    ....
                    ....

                     }
                  return model;
                });

Когда я отлаживаю этот код. Он обрабатывает метод Get в MemoryCacheManager. Теперь на стороне администратора, когда я хочу удалить этот кеш ключом, когда я обновляю какой-либо продукт. Удалить метод, называемый ниже. Удаляет PerRequestCacheManager.

 _cacheManager.Remove(string.Format("product.hometemplate-{0}-{1}", storeid, true));

Таким образом, этот кеш на домашней странице не удаляется. Есть ли какое-либо решение для этого

Теги:
caching
nopcommerce
asp.net-mvc-3

1 ответ

3

Некоторые контроллеры в проекте Nop.Web используют MemoryCacheManager. Эти контроллеры со статическим кешем (MemoryCacheManager) определены в файле \Nop.Web\Infrastructure\DependencyRegistrar.cs. В этом файле мы определяем, какая из реализаций ICacheManager должна быть введена.

Но я бы рекомендовал использовать тот же подход, который используется в nopCommerce. Использовать события. Подпишитесь на события вставки/удаления/обновления продукта в файле \Nop.Web\Infrastructure\Cache\ModelCacheEventConsumer.cs и сбросите кэш. Просто посмотрите, как это уже сделано.

  • 0
    спасибо @ and.maz. Я изменил DependencyRegistrar для службы ImportManager с помощью этого оператора builder.RegisterType <ImportManager> (). As <IImportManager> () .WithParameter (ResolvedParameter.ForNamed <ICacheManager> ("nop_cache_static")). InstancePerHttpRequest как я пишу метод для очистки кэша в ImportManager это было бы нормально?
  • 0
    Текущий MemoryCache установлен на 60 минут, могу ли я иметь его до тех пор, пока я не удалю его вручную, конечно, я собираюсь удалять его каждый день.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню