I have the following code:
IScheduler scheduler = StdSchedulerFactory.GetDefaultScheduler();
scheduler.Start();
IJobDetail job = JobBuilder.Create<EmailJob>().StoreDurably().WithIdentity("J_Email", "J_Mailing").Build();
ITrigger trigger = TriggerBuilder.Create()
.WithIdentity("MailTrigger1", "T_Mail1")
.StartNow()
.WithSimpleSchedule(x => x.WithMisfireHandlingInstructionIgnoreMisfires()
.WithIntervalInSeconds(3)
.RepeatForever())
.Build();
ITrigger triggernew = TriggerBuilder.Create()
.WithIdentity("MailTrigger", "T_Mail")
.StartNow()
.WithSimpleSchedule(x => x.WithMisfireHandlingInstructionIgnoreMisfires()
.WithIntervalInSeconds(5)
.RepeatForever())
.Build();
scheduler.ScheduleJob(job,triggernew);
scheduler.ScheduleJob(job,trigger);
I am getting the following exception:
An unhandled exception of type 'Quartz.ObjectAlreadyExistsException' occurred in Quartz.dll
Additional information: Unable to store Job: 'J_Mailing.J_Email', because one already exists with this identification.
But I have been told that you can have multiple triggers of the same JOB. Maybe I am doing something wrong?
Add the Job to the Scheduler.
Then on the creation of the triggers, use
ForJob
.The code below is tested.