我正在使用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);
}