具有时间段异常的 Sitecore 任务计划
Sitecore Task Scheduling With Time Period Exception
我在 Sitecore 中设置了一些计划任务。有些人 运行 每 15 分钟一次,其他人每隔几个小时一次。
示例配置:
<sitecore>
<scheduling>
<agent type="Acme.Tasks.SitemapProducts, AcmeSitecore" method="Run" interval="00:15:00" site="website">
<param desc="filename">~/products.xml</param>
<param desc="Site">website</param>
<param desc="HasVariants">false</param>
</agent>
</scheduling>
</sitecore>
此 运行 任务每 15 分钟构建一个 xml 文件并且工作正常。但是,我现在想在某些日子的某些时间之间从 运行ning 停止此任务。我有什么办法可以通过配置添加这个吗?
没有。无法仅通过配置来执行此操作。
你可以做的是给你的计划任务传递额外的参数并设置开始和结束时间。然后在您的计划任务代码中检查当前时间是否在开始时间和结束时间之间。
作业将被执行但不会生成新的xml。
<sitecore>
<scheduling>
<agent type="Acme.Tasks.SitemapProducts, AcmeSitecore" method="Run" interval="00:15:00" site="website">
<param desc="filename">~/products.xml</param>
<param desc="Site">website</param>
<param desc="HasVariants">false</param>
<StartTime>08:00</StartTime>
<Endtime>21:00</Endtime>
</agent>
</scheduling>
</sitecore>
代码应该是这样的(未测试):
public class SitemapProducts
{
public string StartTime { get; set; }
public string EndTime { get; set; }
public void Run()
{
if (!string.IsNullOrEmpty(StartTime) && DateTime.Now.ToString("HH:mm") < StartTime)
{
return;
}
if (!string.IsNullOrEmpty(EndTime) && DateTime.Now.ToString("HH:mm") > EndTime)
{
return;
}
}
我在 Sitecore 中设置了一些计划任务。有些人 运行 每 15 分钟一次,其他人每隔几个小时一次。
示例配置:
<sitecore>
<scheduling>
<agent type="Acme.Tasks.SitemapProducts, AcmeSitecore" method="Run" interval="00:15:00" site="website">
<param desc="filename">~/products.xml</param>
<param desc="Site">website</param>
<param desc="HasVariants">false</param>
</agent>
</scheduling>
</sitecore>
此 运行 任务每 15 分钟构建一个 xml 文件并且工作正常。但是,我现在想在某些日子的某些时间之间从 运行ning 停止此任务。我有什么办法可以通过配置添加这个吗?
没有。无法仅通过配置来执行此操作。
你可以做的是给你的计划任务传递额外的参数并设置开始和结束时间。然后在您的计划任务代码中检查当前时间是否在开始时间和结束时间之间。
作业将被执行但不会生成新的xml。
<sitecore>
<scheduling>
<agent type="Acme.Tasks.SitemapProducts, AcmeSitecore" method="Run" interval="00:15:00" site="website">
<param desc="filename">~/products.xml</param>
<param desc="Site">website</param>
<param desc="HasVariants">false</param>
<StartTime>08:00</StartTime>
<Endtime>21:00</Endtime>
</agent>
</scheduling>
</sitecore>
代码应该是这样的(未测试):
public class SitemapProducts
{
public string StartTime { get; set; }
public string EndTime { get; set; }
public void Run()
{
if (!string.IsNullOrEmpty(StartTime) && DateTime.Now.ToString("HH:mm") < StartTime)
{
return;
}
if (!string.IsNullOrEmpty(EndTime) && DateTime.Now.ToString("HH:mm") > EndTime)
{
return;
}
}