0

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

我在 Sitecore Commerce Connect 的文档中找到了相同的信息,但是我找不到任何如何通过代码清理缓存的示例。

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

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

先感谢您。

4

1 回答 1

1

您应该在代码中执行与“刷新目录缓存”按钮单击相同的操作:

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

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

于 2016-12-27T19:59:26.877 回答