我正在尝试从外部源更新商务目录。在增量更新之后,我需要在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并将其传递给方法 - 它不起作用(至少我仍然需要手动清理缓存)。
我将不胜感激任何建议/建议。
提前谢谢。
答案 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
实施。