Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/312.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 石英中的延迟crone触发器(不同的第一个开始日期)_C#_Nhibernate_Quartz Scheduler_Quartz.net - Fatal编程技术网

C# 石英中的延迟crone触发器(不同的第一个开始日期)

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

我几乎已经用quartz完成了c#中的简单应用程序,它定期运行一些SQL查询

我有一个问题,是否可以创建cron触发器,在特定日期开始作业,并在该日期之后定期执行一些作业

这是我的密码:

                    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开始(可能更早)