我使用下面的代码并运行C#应用程序,Schedule开始正常。但是当我按下STOP计划按钮以在2分钟后停止当前计划时,它仍然调用我在“ExecuteJob”类中写的代码,因为结束时间设置为“5分钟后”。 如果代码中有任何问题或者我缺少使用Quartz Scheduler的任何部分,请指导。
这是我的代码:
public static void Start()
{
IScheduler scheduler = StdSchedulerFactory.GetDefaultScheduler();
scheduler.Start();
int counter = scheduler.GetCurrentlyExecutingJobs().Count;
IJobDetail job = JobBuilder.Create<ExecuteJob>().WithIdentity(new JobKey("EmailCampaignJob", "CampaignGroup")).Build();
ITrigger trigger = TriggerBuilder.Create()
.WithIdentity("EmailCampaignnTrigger", "CampaignGroup")
.WithDailyTimeIntervalSchedule
(s =>
s.WithIntervalInSeconds(30)
.OnEveryDay()
.StartingDailyAt(TimeOfDay.HourAndMinuteOfDay(0, 0)
)
).EndAt(DateTime.Now.AddMinutes(5))
.Build();
scheduler.ScheduleJob(job, trigger);
}
public static void stop()
{
IScheduler scheduler = StdSchedulerFactory.GetDefaultScheduler();
scheduler.UnscheduleJob(new TriggerKey("EmailCampaignnTrigger", "CampaignGroup"));
scheduler.DeleteJob(new JobKey("EmailCampaignJob","CampaignGroup"));
scheduler.Clear();
}