【问题标题】:Umbraco automatic updateUmbraco 自动更新
【发布时间】:2018-07-16 07:28:26
【问题描述】:

我需要一些有关 umbraco 的帮助。 假设我有一个带有自定义编辑器的 umbraco 网格,就像本教程中的那个:https://our.umbraco.com/documentation/Getting-Started/Backoffice/Property-Editors/Built-in-Property-Editors/Grid-Layout/build-your-own-editor

好的,所以我编写了这个编辑器来构建一个带有图像/标题的项目库,我从一个 Angular 服务进行的 api 调用中获取项目列表,当我手动发布页面时这工作正常。我想要的是用可用的新项目自动更新这个画廊,所以我的想法是做一个定时的 ajax 调用,比如说每小时来更新项目。但遗憾的是这不起作用,我想调用了但列表没有更新。

有什么建议吗?谢谢

【问题讨论】:

  • 如果调用得到你需要的东西,你是否需要在列表更新后编写代码来“发布”页面?

标签: umbraco


【解决方案1】:

您需要以不同的方式处理此问题。现在听起来你所拥有的是一个实现,当你使用浏览器在后台浏览到这个节点并且浏览器通过 Angular 进行 API 调用时,它可以工作。这一切都发生在您的 UI 中,当您手动点击保存/发布时 - UI 中的数据将被保存。请记住,这基本上是你的浏览器在做“工作”——当然,这个(和所有其他 Angular 代码)只会在你的浏览器打开时运行,在后台查看这个节点。

您想要做的是让它自动运行(最好是在某种后台任务中),以确保您不必真正打开后台,以便随着时间的推移自动更新。

您需要创建某种在服务器端运行的后台作业。这必须在 C# 中完成,我建议研究 Hangfire 或 Quartz 框架来处理所有调度/确保作业运行。

此作业/任务应在 C# 中执行外部 API 调用,并将结果转换为与您保存手动更新数据时所保存格式相同的格式。然后使用ContentService API 获取您需要更新的内容节点,并更新这些节点上的特定属性值。完成此操作后,您需要确保保存更改,然后使用更新的数据重新发布节点。所有这些都是通过ContentService 完成的。

【讨论】:

    猜你喜欢
    • 2014-05-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-09
    • 2014-09-09
    • 1970-01-01
    相关资源
    最近更新 更多