【发布时间】:2017-11-22 08:49:13
【问题描述】:
我有使用 MS SQL 的石英,它将所有作业详细信息存储在 sql 中,但我不知道如何设置它以在应用程序重新启动后恢复所有作业。
谁能告诉我如何设置quartz以在应用程序重启后恢复工作。
这就是我在 api 调用上安排工作的方法
File.AppendAllText(@"C:\Temp\test.txt",$"Starting sechd at {DateTime.Now.ToString("ddMMyyyyHHmmss")}");
ISchedulerFactory sf = new StdSchedulerFactory();
IScheduler sc = sf.GetScheduler();
sc.Start();
IJobDetail emailJob = JobBuilder.Create<EmailJob>()
.WithIdentity("reportemail", "reportgroup")
.Build();
string dom = js.DayOfMonth.ToString();
if (js.DayOfWeek > 0)
dom = "?";
string dow = (js.DayOfWeek < 1) ? "*" : js.DayOfWeek.ToString();
string y = (js.Year > 0) ? js.Year.ToString() : "*";
string m = (js.Month > 0) ? js.Month.ToString() : "*";
string crn = $"{js.Second.ToString()} {js.Minute.ToString()} {js.Hour.ToString()} {dom} {m} {dow} {y}";
ITrigger trigger = TriggerBuilder.Create()
.ForJob(emailJob)
.WithIdentity("reporttrigger","reportgroup")
.WithCronSchedule("0 0/3 * ? * *")
.StartNow()
.Build();
sc.ScheduleJob(emailJob, trigger);
谢谢
【问题讨论】:
-
阅读“失火说明”dzone.com/articles/quartz-scheduler-misfire。您可以对其进行设置,以便如果由于任何原因错过调用,它将被重试。
标签: quartz-scheduler quartz.net quartz