Reputation: 12085
I'm using Quartz in C# to build a background job. Here is my code:
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);
}
}
Now, I'm trying to reschedule that ParserTrigger
from another class. Here is the code:
IScheduler scheduler = StdSchedulerFactory.GetDefaultScheduler();
scheduler.RescheduleJob()
As you can see, there is a function called RescheduleJob(triggerKey, newTrigger)
, but I don't know how to get the trigger key of ParserTrigger
from another class. Please help me. Thanks a lot.
Upvotes: 1
Views: 533
Reputation: 38519
From mermory, you can do something like:
IScheduler scheduler = StdSchedulerFactory.GetDefaultScheduler();
var trigger = scheduler.GetTrigger("ParserTrigger","Trigger");
scheduler.RescheduleJob(trigger.JobName, trigger.JobGroup, trigger);
(note - untested!)
Upvotes: 1