在石英中取消调度作业



我正在使用Quartz在我的c# .net应用程序中调度作业。我将所有数据存储在数据库中。我的代码是:

ISchedulerFactory schedFact = new StdSchedulerFactory(properties);
        _scheduler = schedFact.GetScheduler();
        _scheduler.Start();
       job = JobBuilder.Create<JobTask>()
             .WithIdentity("job1", "group1")
        .Build();
          trigger = TriggerBuilder.Create()
            .WithIdentity("trigger1", "group1")
            .WithSchedule(
        CronScheduleBuilder.CronSchedule("0 0/5 * * * ?"))
         .Build();
         _scheduler.ScheduleJob(job, trigger);

现在我想为用户提供功能,以便用户可以禁用(取消计划)作业。我在石英教程中看过,但我找不到在 c# 中做到这一点的方法。

您可以在 IScheduler 中调用以下方法

    //
    // Summary:
    //     Remove the indicated Quartz.Trigger from the scheduler.
    bool UnscheduleJob(string triggerName, string groupName);

您的 Job 类可以实现IInterruptableJob接口并实现

public void Interrupt()
{
    JobKey jobKey = new JobKey(JobName, MyService.GroupName);
    Scheduler.Interrupt(jobKey);
}

最新更新