C# 石英中的延迟crone触发器(不同的第一个开始日期)
我几乎已经用quartz完成了c#中的简单应用程序,它定期运行一些SQL查询 我有一个问题,是否可以创建cron触发器,在特定日期开始作业,并在该日期之后定期执行一些作业 这是我的密码:C# 石英中的延迟crone触发器(不同的第一个开始日期),c#,nhibernate,quartz-scheduler,quartz.net,C#,Nhibernate,Quartz Scheduler,Quartz.net,我几乎已经用quartz完成了c#中的简单应用程序,它定期运行一些SQL查询 我有一个问题,是否可以创建cron触发器,在特定日期开始作业,并在该日期之后定期执行一些作业 这是我的密码: IJobDetails myJob = new JobDetails(); //This Constructor needs to be parameterless i nic na to nie poradzimy JobDeta
IJobDetails myJob = new JobDetails(); //This Constructor needs to be parameterless i nic na to nie poradzimy
JobDetailImpl jobDetail = new JobDetailImpl(name, gruoupName, myJob.GetType());
//dodawanie parametru
jobDetail.JobDataMap.Add("addParam", item);
//////
CronTriggerImpl trigger = new CronTriggerImpl();
trigger.Name = triggerName;
trigger.Group = grupa;
trigger.CronExpressionString = "0 10 14-15 8 8 ?";
try
{
_scheduler.ScheduleJob(jobDetail, trigger);
}
catch
{
MessageBox.Show("INVALID TRIGGER. JOB CANCELED");
}
DateTimeOffset? nextFireTime = trigger.GetNextFireTimeUtc().Value.AddHours(2);
Console.WriteLine("Job o jobs_id=" + item.jobs_id + " start:" + nextFireTime.Value);
例如:
今天是2013年8月1日,今天我想创建crone触发器,它从2013年8月8日开始,每天从2:00pm到3:00pm每隔10分钟触发一次SQL查询
目前,我知道如何制作从2013年8月8日开始并运行一次的crone触发器,知道如何创建第二个crone触发器,每天从2:00pm到3:00pm每10分钟运行一次,但我仍然不知道如何将这两个crone触发器设置为marge并创建一个:从2013年8月8日开始,在2013年8月8日之后每天运行,每天从下午2:00到下午3:00每10分钟触发一次SQL查询
我试过使用:
trigger.FinalFireTimeUtc(someDate);
trigger.SetNextFireTimeUtc(someDate)
但是没有任何积极的结果。正如它的cronExpressionString所说的那样,乔布斯被解雇了
非常感谢您的帮助。不确定您使用的是Quartz.net的哪个版本,但您可以使用2.0设置“StartTimeUtc”属性。您可能想试试那个。谢谢lenimall的回答。我检查方法StatTimeUTC,但它返回开始日期时间值,而不是设置它。我发现ProffsQuartz的博客无法在您需要的时候运行作业。
无论如何,非常感谢你的帮助 关键是在构建触发器时使用“StartAt”扩展方法
/*计算下一次希望作业运行的时间-在本例中为下一小时的顶部*/
var hourFromNow=DateTime.UtcNow.AddHours(1);
var topOfNextHour=新日期时间(hourFromNow.Year,hourFromNow.Month,hourFromNow.Day,hourFromNow.Hour,0,0);
/*建立你的触发器并调用“StartAt”*/
TriggerBuilder.Create().WithIdentity(“延迟作业”).WithSimpleSchedule(x=>x.WithIntervalInSeconds(60).RepeatForever()).StartAt(新日期时间偏移量(TopofNext小时))
StartDateUtc没有设置器-至少从2.2.4开始(可能更早)