一段时间后停止所有工作Quartz Scheduler

时间:2017-08-11 13:25:56

标签: c# quartz.net

我使用下面的代码并运行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();
}

0 个答案:

没有答案