Cron 每X天运行一次作业,但只能在两个特定日期和时间之间运行
我想标题说明了一切 我想运行一个作业,例如从2014年6月19日开始(比如上午7点),到2015年12月25日结束(比如晚上11点),在这两个日期之间每隔9天运行一次。我可以设置它在没有结束日期的情况下工作。但我不知道如何在一个表达式中包含所有内容 更新: 将Cron 每X天运行一次作业,但只能在两个特定日期和时间之间运行,cron,quartz-scheduler,Cron,Quartz Scheduler,我想标题说明了一切 我想运行一个作业,例如从2014年6月19日开始(比如上午7点),到2015年12月25日结束(比如晚上11点),在这两个日期之间每隔9天运行一次。我可以设置它在没有结束日期的情况下工作。但我不知道如何在一个表达式中包含所有内容 更新: 将EndAt()添加到我的TriggerBuilder工作吗 mytrigger = (ICronTrigger)TriggerBuilder.Create() .WithIdentity(triggerName, triggerGr
EndAt()
添加到我的TriggerBuilder
工作吗
mytrigger = (ICronTrigger)TriggerBuilder.Create()
.WithIdentity(triggerName, triggerGroup)
.WithCronSchedule(cron)
.EndAt(xxxx)
.Build();
您的方向是正确的,需要大量研究才能使用cron表达式生成的计划可以通过API轻松生成。例如,您需要的触发器如下所示:
var startDate = new DateTime(2014, 06, 19, 7, 0, 0);
var endDate = new DateTime(2015, 12, 25, 23, 0, 0);
var cronExpression = "0 0 12 1/9 * ? *"; //every nine days
ITrigger trig = TriggerBuilder.Create()
.StartAt(startDate)
.WithCronSchedule(cronExpression)
.WithDescription("description")
.WithIdentity(triggerKey)
.WithPriority(1)
.EndAt(endDate)
.Build();
如果要查看生成的cron表达式:
ICronTrigger trigger = (ICronTrigger)trig;
string cronExpression = trigger.CronExpressionString;
给我们看看你现在的状态config@Martin我想在cron中提到开始日期和时间,然后当我使用
TriggerBuilder
添加触发器时,我还添加了endAt()
。这是个好主意吗?我不完全确定“在我的cron中提及开始日期和时间”是什么意思,但是设置endAt将确保触发器不会在endAt之后触发date@Martin我的意思是,我可以编写cron,使它在特定的日期和时间开始。但是为了添加结束日期,我可以使用TriggerBuilder
创建一个my触发器,并将“endDate”添加到它的构建中。我将更新上面的代码。