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

Sitecore Commerce Connect > Refreshing a Cache via code

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

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

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

我将不胜感激 advise/suggestion。

提前致谢。

您应该在您的代码中执行与 "Refresh Catalog 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 通过反射器实现。