Umbraco自动更新

时间:2018-07-16 07:28:26

标签: umbraco

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

好吧,所以我写了这个编辑器来构建带有图像/标题的项目的画廊,我从有角度的服务进行的api调用中获得了项目列表,当我手动发布页面时,它可以正常工作。我想要的是使用可用的新项目自动更新该画廊,所以我的想法是打电话给定时的ajax电话,比如说每小时,以更新这些项目。但是遗憾的是,这行不通,我想已经打了电话,但列表没有更新。

有什么建议吗?谢谢

1 个答案:

答案 0 :(得分:0)

您需要以不同的方式处理。现在,听起来像您所拥有的是一种实现,当您使用浏览器浏览到后台中的该节点并且浏览器通过Angular进行API调用时,该实现可以正常工作。这一切都发生在您的UI中,当您手动单击“保存/发布”时-UI中的数据将被保存。请记住,这基本上是您的浏览器执行的“工作”-当然,(以及所有其他Angular代码)只有在您的浏览器处于打开状态时,才可以在后台在办公室中查看此节点。

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

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

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