【发布时间】:2017-01-11 11:35:29
【问题描述】:
我在我的 C#.Net 网站中包含 Quartz.net 库,以根据某些条件自动发送电子邮件。我已经使用 RepeatForever() 开始了这项工作。我正在从数据库中获取调度程序的设置。现在,当作业已经开始时,无论如何都要检查数据库中调度程序的设置是否已更改,所以我还应该在我的方法中更新它们,以便调度程序以新设置动态运行?到目前为止,我已经这样做了:
public void StartJob()
{
var reminderSettings = GetReminderSettings(); //getting these settings from database
var count = GetUnpaidInvoicesListCount();
var intervalBtwnReminders = 0;
if (reminderSettings?.RemindersGap != null)
{
intervalBtwnReminders = (int)(reminderSettings.RemindersGap);
}
ISchedulerFactory schedFact = new StdSchedulerFactory();
IScheduler sched = schedFact.GetScheduler();
sched.Start();
// create job
IJobDetail job = JobBuilder.Create<EmailJob>()
.WithIdentity("job1", "group1")
.Build();
// create trigger
ITrigger trigger = TriggerBuilder.Create()
.WithIdentity("trigger1", "group1")
.WithSimpleSchedule(x =>
{
x.WithIntervalInMinutes(intervalBtwnReminders ).RepeatForever();
})
.Build();
sched.ScheduleJob(job, trigger);
}
【问题讨论】:
标签: c# .net quartz.net