2016-12-27 7 views
0

Я пытаюсь обновить каталог торговли из внешнего источника. После инкрементного обновления мне нужно иметь свежие данные в дереве Sitecore (поставщик данных должен возвращать правильные данные вместо старых (кешированных)). Однако, если я перейду в Sitecore сразу после импорта данных, я смогу увидеть только старые данные, пока я не нажму кнопку "Refresh Catalog Cache" в меню Sitecore Commerce.Sitecore Commerce Connect> Обновление кэша с помощью кода

Я нашел the same info в документации для Sitecore Commerce Connect, однако я не могу найти пример, как очищать кеш через код.

Я нашел несколько типов в пространстве имен Sitecore.Commerce.Connect.CommerceServer.Caching. Например, статический класс CacheRefresh. Он имеет метод RefreshCatalogCaches, для которого в качестве входного параметра необходим контекстный менеджер ICommerceServerContextManager. Если я создаю contextManager, просто используя конструктор new CommerceServerContextManager() и передав его методу - он не работает (по крайней мере, мне все равно нужно очистить кеш вручную).

Буду признателен за любые рекомендации/предложения.

Заранее спасибо.

ответ

1

Вы должны сделать в вашем коде то же, что происходит на «Обновить каталог Cache» кнопка мыши:

CacheRefreshEvent eventX = new CacheRefreshEvent("catalogcache", "master", = ID.Null); 
EventManager.QueueEvent<CacheRefreshEvent>(eventX, true, true); 

Для получения более подробной информации, смотрите на Sitecore.Commerce.Connect.CommerceServer.Caching.RefreshCache, Sitecore.Commerce.Connect.CommerceServer реализации через отражатель.

+0

Это работает. Спасибо! – Max