public void Start(string configFile) { if (Scheduler.IsStarted) { return; } //读取配置文件 CmrConfig.Register(configFile); // define the job and tie it to our HelloJob class IJobDetail job = JobBuilder.Create <CmrcnCrawlerJob>() .WithIdentity("CmrcnCrawlerJob", "group1") .Build(); // Trigger the job to run now, and then repeat every 8 hours ITrigger trigger = TriggerBuilder.Create() .WithIdentity("trigger1", "group1") .StartNow() .WithSimpleSchedule(x => x.WithIntervalInMinutes(1) //.WithIntervalInHours(8) .RepeatForever()) //.WithDailyTimeIntervalSchedule(x => x // .OnEveryDay() // .WithIntervalInHours(1) // .StartingDailyAt(TimeOfDay.HourAndMinuteOfDay(8, 7)) //记录一下,尝试一下Utc时间 // .EndingDailyAfterCount(4) // .WithMisfireHandlingInstructionFireAndProceed() //) .Build(); // Tell quartz to schedule the job using our trigger Scheduler.ScheduleJob(job, trigger); Scheduler.Start(); }
public void Execute(IJobExecutionContext context) { _logger.Info("===== CmrcnCrawlerJob 任务开始 ====="); try { var config = CmrConfig.GetInstance(); config.Subjects.Reverse(); foreach (var subject in config.Subjects) { var manager = new ExamManager(subject.LoginInfo); if (false == subject.Enabled) { continue; } int totalExam = 0; foreach (var module in subject.SubjectModules) { totalExam += manager.GetExam(module); Thread.Sleep(1000); } _logger.Info(string.Format("正常完成。SubjcetId:[{0}]-Total:[{1}]", subject.Id, totalExam)); } } catch (Exception ex) { _logger.Error("异常停止", ex); } _logger.Info(string.Format("===== 目前题库共有 {0} 道题目 =====", _examItemService.Count())); _logger.Info("===== CmrcnCrawlerJob 任务结束 ====="); }