Umbraco 7,不推荐使用AfterUpdateDocumentCache事件

时间:2014-01-12 10:34:10

标签: events deprecated umbraco7

我认为umbraco.content.AfterUpdateDocumentCache事件的签名使用umbraco.cms.businesslogic.web.Document对象。不幸的是,它在“Umbraco 7”中被弃用了 什么是新活动?

我在umbraco.content.AfterClearDocumentCache事件中遇到同样的问题。

由于

3 个答案:

答案 0 :(得分:3)

在umbraco7代码中,umbraco.content.AfterUpdateDocumentCache没有任何类似物。

您似乎可能不得不重新考虑实施方法来处理挂起Umbraco.Core.Services.ContentService的可用事件

查看ContentService.Publish的u7实现,例如,调用内部SaveAndPublishDo,表明在触发Saved和Published之前调用PreviewXML和ContentXML光盘缓存(通过Umbraco.Core .Publishing.PublishingStrategy)事件。我认为旧的umbraco.content.AfterUpdateDocumentCache是在上述两个事件之后发生的单个事件。在它缺席的情况下 - 我相信您可能需要分别关注已保存/已发布/已删除的事件。 我可以看到有很多事件会导致缓存更新,单独连接它们会很麻烦 - 但是对于可用事件的粒度特定的不同方法可能是升级吗?!

从我看到有OnCacheUpdated等事件的Umbraco.Core.Cache.CacheRefresherBase回溯也可能有所帮助。他们存在的结果是火 - 虽然我不确定他们是否公开曝光。

这可能更适合作为评论(我需要更多分数),因为它不是你问题的100%分辨率。希望在正确的方向上推动可能会有所帮助吗?

答案 1 :(得分:0)

http://issues.umbraco.org/issue/U4-3462

根据Umbraco团队成员回答的这个帖子,仍然应该使用AfterUpdateDocumentCache,并且可以安全地忽略不推荐使用的参数

答案 2 :(得分:0)

我决定在 Umbraco 7 中使用 AfterUpdateDocumentCache,但注意到两个问题。首先是双重触发此事件。第二个问题是我在此事件中渲染页面时检索相同的未修改内容。

然后我决定使用 CacheRefresherBase 和 CacheUpdate 事件但仍然有同样的问题。可能是由于额外的缓存刷新传播。

我看到的唯一解决方法是在新任务中使用 Thread.Sleep 并稍后执行清除 url。