gpt4 book ai didi

sitecore - 每天同一时间运行sitecore计划任务

转载 作者:行者123 更新时间:2023-12-05 00:03:43 25 4
gpt4 key购买 nike

我需要在每天的确切时间运行一个 sitecore 计划任务。
目前,该任务按以下方式安排:

Schedule: 20100201T235900|20200201T235900|127|23:59:59
Last run: 2011 06 22 01:32:25

执行该任务大约需要 5 分钟,所以 “上次运行”逐渐滑倒,运行得越来越晚。

我的主要想法是创建一个 Windows 计划任务,该任务调用 Web 服务并重置 上次运行 相关任务的时间。

还有其他方法吗?我是否缺少一些可以更轻松地实现这一目标的配置属性?

最佳答案

我为此开发了自己的解决方案。

首先,将您的任务修改为每 1 分钟左右运行一次。它必须经常运行。
不是强制任务运行一次,而是让您的任务在您喜欢的时间执行它的功能,然后等到第二天再次执行该功能:

在这个例子中,我强制我的任务在 03:00 am 和 04:00 am 之间运行一次:

public void Execute(Item[] itemArray, CommandItem commandItem, ScheduleItem scheduleItem)
{
if (!IsDue(scheduleItem))
return;

// DO MY STUFF!!
}

/// <summary>
/// Determines whether the specified schedule item is due to run.
/// </summary>
/// <remarks>
/// The scheduled item will only run between defined hours (usually at night) to ensure that the
/// email sending will not interfere with daily operations, and to ensure that the task is only run
/// once a day.
/// Make sure you configure the task to run at least double so often than the time span between
/// SendNotifyMailsAfter and SendNotifyMailsBefore
/// </remarks>
/// <param name="scheduleItem">The schedule item.</param>
/// <returns>
/// <c>true</c> if the specified schedule item is due; otherwise, <c>false</c>.
/// </returns>
private bool IsDue(ScheduleItem scheduleItem)
{
DateTime timeBegin;
DateTime timeEnd;

DateTime.TryParse("03:00:00", out timeBegin);
DateTime.TryParse("04:00:00", out timeEnd);



return (CheckTime(DateTime.Now, timeBegin, timeEnd) && !CheckTime(scheduleItem.LastRun, timeBegin, timeEnd));
}

private bool CheckTime(DateTime time, DateTime after, DateTime before)
{
return ((time >= after) && (time <= before));
}

查看文章以获取更多详细信息:
http://briancaos.wordpress.com/2011/06/28/run-sitecore-scheduled-task-at-the-same-time-every-day/

关于sitecore - 每天同一时间运行sitecore计划任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6456155/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com