我认为umbraco.content.AfterUpdateDocumentCache
事件的签名使用umbraco.cms.businesslogic.web.Document
对象。不幸的是,它在“Umbraco 7”中被弃用了
什么是新活动?
我在umbraco.content.AfterClearDocumentCache
事件中遇到同样的问题。
由于
答案 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。