Sitecore Commerce Connect>通过代码刷新缓存

时间:2016-12-27 17:27:10

标签: sitecore sitecore8 sitecore-commerce-server

我正在尝试从外部源更新商务目录。在增量更新之后,我需要在Sitecore树中获得新数据(数据提供者应该返回正确的数据而不是旧的(缓存的)数据)。但是,如果我在数据导入后立即转到Sitecore,我只能看到旧数据,直到我点击Sitecore Commerce菜单中的"Refresh Catalog Cache"按钮。

我在Sitecore Commerce Connect的文档中找到了the same info,但我找不到任何如何通过代码清理缓存的示例。

我在“Sitecore.Commerce.Connect.CommerceServer.Caching”命名空间中找到了几种类型。例如,CacheRefresh静态类。它有RefreshCatalogCaches方法,需要ICommerceServerContextManager contextManager作为输入参数。如果我只使用构造函数new CommerceServerContextManager()创建contextManager并将其传递给方法 - 它不起作用(至少我仍然需要手动清理缓存)。

我将不胜感激任何建议/建议。

提前谢谢。

1 个答案:

答案 0 :(得分:1)

你应该在代码中执行与#34;刷新目录缓存"相同的代码。按钮点击:

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

有关详细信息,请通过反射器查看Sitecore.Commerce.Connect.CommerceServer.Caching.RefreshCache, Sitecore.Commerce.Connect.CommerceServer实施。