我在C#中使用Quartz来构建后台作业。这是我的代码:
public class BackgroundConfig
{
private IScheduler scheduler;
public BackgroundConfig()
{
scheduler = StdSchedulerFactory.GetDefaultScheduler();
scheduler.Start();
}
public void ScheduleParser()
{
IJobDetail job = JobBuilder.Create<ParseJob>()
.WithIdentity("Parser", "Job")
.Build();
ITrigger trigger = TriggerBuilder.Create()
.WithIdentity("ParserTrigger", "Trigger")
.WithSchedule(CronScheduleBuilder.DailyAtHourAndMinute(4, 0))
.Build();
scheduler.ScheduleJob(job, trigger);
}
}
现在,我试图从另一个班级重新安排ParserTrigger
。这是代码:
IScheduler scheduler = StdSchedulerFactory.GetDefaultScheduler();
scheduler.RescheduleJob()
如您所见,有一个名为RescheduleJob(triggerKey, newTrigger)
的函数,但我不知道如何从另一个类获取ParserTrigger
的触发键。请帮我。非常感谢。
答案 0 :(得分:1)
从内存中,您可以执行以下操作:
IScheduler scheduler = StdSchedulerFactory.GetDefaultScheduler();
var trigger = scheduler.GetTrigger("ParserTrigger","Trigger");
scheduler.RescheduleJob(trigger.JobName, trigger.JobGroup, trigger);
(注意 - 未经测试!)