gpt4 book ai didi

c# - Quartz.Net 如何创建每天不增加 1 分钟的日程表

转载 作者:IT王子 更新时间:2023-10-29 04:03:25 25 4
gpt4 key购买 nike

我正在尝试在 Quartz.Net 中建立一个重复的每日计划,但遇到了一些问题:

首先,我制定了每日时间表,在 12:45 重复像这样使用 Quartz.Net 代码:

var trigger = TriggerBuilder.Create()
.WithDailyTimeIntervalSchedule(s =>
s.OnEveryDay().StartingDailyAt(new TimeOfDay(13, 00)))
.Build();

var times = TriggerUtils.ComputeFireTimes(trigger as IOperableTrigger, null, 10);

foreach (var time in times) Console.WriteLine(time);

这是在新西兰执行的,DST(所以 UTC+13:00)

我得到的输出很奇怪:

5/10/2012 1:00:00 p.m. +13:00
5/10/2012 12:01:00 a.m. +00:00
5/10/2012 12:02:00 a.m. +00:00
5/10/2012 12:03:00 a.m. +00:00
5/10/2012 12:04:00 a.m. +00:00
5/10/2012 12:05:00 a.m. +00:00
5/10/2012 12:06:00 a.m. +00:00
5/10/2012 12:07:00 a.m. +00:00
5/10/2012 12:08:00 a.m. +00:00
5/10/2012 12:09:00 a.m. +00:00

第一个日期/时间使用本地时区显示,其余时间使用 UTC 显示,每个时间值增加 1 分钟,日期永远不变。

我觉得我可能在每日时间间隔安排中遗漏了一些基本的东西,但我只是不知道它是什么?

编辑

作为更新,我现在已经切换到使用基于 CRON 表达式的触发器:

TriggerBuilder.Create()
.WithCronSchedule(string.Format("0 {0} {1} ? * *", 0, 13))
.Build();

它给了我预期的结果:

5/10/2012 12:00:00 a.m. +00:00
6/10/2012 12:00:00 a.m. +00:00
7/10/2012 12:00:00 a.m. +00:00
8/10/2012 12:00:00 a.m. +00:00
9/10/2012 12:00:00 a.m. +00:00
10/10/2012 12:00:00 a.m. +00:00
11/10/2012 12:00:00 a.m. +00:00
12/10/2012 12:00:00 a.m. +00:00
13/10/2012 12:00:00 a.m. +00:00
14/10/2012 12:00:00 a.m. +00:00

但我仍然想知道为什么 DailyTimeIntervale 计划不起作用...

最佳答案

您没有指定默认为 1 分钟的间隔,因此它假定您希望每分钟运行一次作业。

尝试

 ITrigger trigger = TriggerBuilder.Create()
.WithDailyTimeIntervalSchedule
(s =>
s.WithIntervalInHours(24)
.OnEveryDay()
.StartingDailyAt(TimeOfDay.HourAndMinuteOfDay(13, 0))
)
.Build();

默认值应该是每天运行,因此实际上并不需要 OnEveryDay()。

不确定为什么您会看到本地和 UTC,因为我所有的时间都以 UTC 显示。

关于c# - Quartz.Net 如何创建每天不增加 1 分钟的日程表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12735750/

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