据我所知,开箱即用的Sitecore没有提供在特定时间发布内容的方法。我指的是一天中确切的时间。
据我所知,您可以通过设置时间间隔来打开发布代理,比如说每半小时(似乎更频繁地自动发布并不是一个好主意)。然后,您可以让您的作者在项目上设置发布限制。当该限制通过时,该项目将在发布代理下次运行时发布。对,是这样?
上面的场景不允许在一天中的特定时间发布某些内容。如果我有一个页面需要在明天早上8点上线,那么它可能在8:30左右才会上线,这取决于时间间隔与早上8点的关系我没记错吧?
让作者可以在一天中的特定时间发布项目的最佳方法是什么?
发布于 2015-04-02 10:40:44
你对出版代理的看法是正确的。Sitecore的所有代理都是基于时间间隔的,不能保证在特定时间运行。你可以降低发布的时间间隔,但是因为发布在很大程度上是一个连续的任务,如果你的时间间隔是5分钟,而你的站点发布需要7分钟,你会得到一堆发布作业(因为每5分钟就有一个被放到队列中)。
确保在特定时间进行发布的唯一方法是让某人在该时间通过内容编辑器进行发布。在自动化方面,Sitecore对此没有任何东西。在过去,时钟时间对作业的运行至关重要,我曾看到Windows计划任务运行并点击网站上的URL来启动它。
如果一天中的时间如此关键,您可以采用的另一种方法是在基本模板上有一个日期时间字段,然后在ItemResolver之后运行一个httpBeginRequest管道步骤。让该步骤读取场地上的时间,如果项目尚未“上线”,则读取管道。
发布于 2015-04-02 23:00:55
Sitecore Marketplace中有一个用于此的模块:
https://marketplace.sitecore.net/en/Modules/Automated_Publisher.aspx
每当作者对项目设置发布限制时,系统会添加一个新的计划任务,并在特定时间发布该项目。
发布于 2015-04-02 23:15:35
您可以按照此link中的说明在特定时间触发任务,您必须为发布任务编写代码,如下所示:
PublishOptions options =
new PublishOptions(master, web, PublishMode.Smart,
Sitecore.Globalization.Language.Parse("en"), DateTime.Now)
{
Deep = true;
};
Publisher publisher = new Publisher(options);
publisher.PublishAsync();https://stackoverflow.com/questions/29403686
复制相似问题