【问题标题】:Umbraco 7, AfterUpdateDocumentCache event is deprecatedUmbraco 7,不推荐使用 AfterUpdateDocumentCache 事件
【发布时间】:2014-01-12 10:34:09
【问题描述】:

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

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

谢谢

【问题讨论】:

    标签: events deprecated umbraco7


    【解决方案1】:

    umbraco7 代码中似乎没有umbraco.content.AfterUpdateDocumentCache 的任何模拟。

    看来你可能不得不重新考虑你对可用事件的实现方法Umbraco.Core.Services.ContentService

    ContentService.Publish 的 u7 实现为例,这个调用内部的 SaveAndPublishDo 表明 PreviewXML 和 ContentXML 磁盘缓存在触发 Saved 和 Published 之前被调用(通过 Umbraco.Core.Publishing.PublishingStrategy ) 事件。我认为旧的umbraco.content.AfterUpdateDocumentCache 是在上述两个事件之后发生的单个事件。在它缺席的情况下 - 我相信您可能必须单独注意保存/发布/删除的事件。 我可以看到有一堆事件会导致缓存更新,单独连接它们会很痛苦 - 但也许特定于可用事件粒度的不同方法是升级?!

    Umbraco.Core.Cache.CacheRefresherBase 回溯也可能会有所帮助,我看到有像 OnCacheUpdated 这样的事件。它们确实存在,但我不确定它们是否或在哪里公开曝光。

    这可能更适合作为评论(我需要更多分数),因为它不是 100% 解决您的问题。希望朝着正确的方向轻推可能会有所帮助?

    【讨论】:

    • 我对@9​​87654327@ 班级很感兴趣。我会尝试使用它。谢谢!
    【解决方案2】:

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

    根据 Umbraco 团队成员的回答,AfterUpdateDocumentCache 仍应使用,并且可以安全地忽略已弃用的参数

    【讨论】:

      【解决方案3】:

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

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-10-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-04-22
        相关资源
        最近更新 更多