我想知道是否可以用几个条件编写一个cron表达式:
10:00
,10:42
,11:24
,12:06
等。0
结束(例如10:28
,10:29
),则cron首次开火时间应为10:30
。所以这意味着第一次开火时间应该是" round"分钟。我希望你了解这些条件。是否可以用石英cron描述它们?
答案 0 :(得分:1)
您可以使用Quartz.net 3.0中描述的作业触发器:
var jobTrigger = TriggerBuilder.Create()
.StartNow()
.WithSimpleSchedule(s => s
.WithIntervalInMinutes(42)
.RepeatForever())
.Build();
您可以在第一轮时间重新启动应用程序,因此它将仅在同一时间第一次启动。
答案 1 :(得分:0)
我通常使用http://www.cronmaker.com/来生成我的cron表达式。如果您尝试每42分钟选项,您将得到以下表达式:" 0 0/42 * 1/1 *? *&#34 ;.至于" round"分钟的事情,你可以在构建触发器时尝试这个:
ITrigger trigger = TriggerBuilder.Create()
.WithIdentity(JobTrigger, JobGroup)
.WithCronSchedule(CroneExpression)
.StartAt(new DateTimeOffset(DateTime.Now,
TimeSpan.FromMinutes(DateTime.Now.Minute % 10)))
.Build();
答案 2 :(得分:0)
这是不可能的,请参阅解释和类似问题:Quartz.net - Repeat on day n, of every m months?
Cron表达式也不可能。为此,您需要应用一些复杂的逻辑,使用评估器中不存在的某些运算符。你为什么需要这个?您想结合这两个要求并创建单一的复杂模式吗?