Windows 任务计划程序每日触发器运行持续时间为
Posted
技术标签:
【中文标题】Windows 任务计划程序每日触发器运行持续时间为【英文标题】:Windows TaskScheduler DailyTrigger run for a duration of 【发布时间】:2015-09-13 06:22:45 【问题描述】:我正在使用 Microsoft.Win32.TaskScheduler.DailyTrigger 为 Windows 中的任务创建触发器,每天早上 8 点运行。该任务每小时重复一次,但我希望它在 10 小时后停止,直到第二天再次启动。
在 Windows 任务计划程序应用程序中,在触发器下,您会看到类似“每 1 小时重复一次任务,持续 10 小时”之类的内容。
我可以每小时重复一次任务,但我找不到“持续时间”的方法。这是到目前为止我必须设置触发器的代码,startTime 是设置为今天上午 8 点的 DateTime。
var dailyTrigger = new DailyTrigger();
dailyTrigger.Repetition.Interval = TimeSpan.FromHours(1);
dailyTrigger.StartBoundary = startTime;
dailyTrigger.ExecutionTimeLimit = TimeSpan.FromMinutes(59);
我可以使用多个触发器来做到这一点,但我在想如果应用程序接口允许它可能有一种方法可以在代码中做到这一点。
【问题讨论】:
【参考方案1】:编辑:我注意到下面是一个不同的类,并且 OP 可能下载了a library from Codeplex。以下仍然适用,只是Repetition.Interval
和Repetition.Duration
。
// Set the time in between each repetition of the task after it starts to 30 minutes.
tt.Repetition.Interval = TimeSpan.FromMinutes(60); // Default is TimeSpan.Zero (or never)
// Set the time the task will repeat to 1 day.
tt.Repetition.Duration = TimeSpan.FromDays(1); // Default is TimeSpan.Zero (or never)
https://msdn.microsoft.com/en-us/library/office/microsoft.office.excel.server.addins.computecluster.taskscheduler.trigger.intervalminutes(v=office.12).aspx
间隔分钟数
获取或设置重复运行的任务执行之间的分钟数。
[...]
任务继续重复运行,直到指定的时间间隔 DurationMinutes 属性过期。 IntervalMinutes 值为 从上一次执行开始计算。
IntervalMinutes 值必须小于 DurationMinutes 值。
https://msdn.microsoft.com/en-us/library/office/microsoft.office.excel.server.addins.computecluster.taskscheduler.trigger.durationminutes(v=office.12).aspx
持续时间分钟
获取或设置触发器触发后触发器保持活动状态的分钟数。
[...]
此属性与 IntervalMinutes 属性结合使用 在一段时间内重复运行任务。例如,要启动一个 上午 8:00 的任务并反复重启,直到下午 5:00, DurationMinutes 值为 540 分钟(9 小时)。
DurationMinutes 值也可用于终止正在运行的任务 在任务的 DurationMinutes 属性过期后。
您使用 KillAtDurationEnd 属性来指定任务是 在其 DurationMinutes 到期后终止。 DurationMinutes 的值必须大于或等于 IntervalMinutes 设置。
【讨论】:
噢!除了最明显的地方,我到处看了看!非常感谢@peter以上是关于Windows 任务计划程序每日触发器运行持续时间为的主要内容,如果未能解决你的问题,请参考以下文章