public void Start() { if (!_options.Running) { return; } var timeZone = new TimeZoneOptions(_options.TimeZone).ToTimeZoneInfo(); foreach (var job in _options.Jobs) { if (!job.Running) { continue; } var cron = new CronExpression(job.Cron); if (!cron.IsValid) { _loggerFactory.CreateLogger(GetType().FullName) .LogWarning($"Invalid cron expression for '{job.Name}'."); continue; } var timer = new JobInterval(cron, timeZone, async() => await RunAsync(job.Name)); _timers.Add(timer); timer.Run(); } }
public void Start() { if (!_options.Running) { return; } var timezone = TimeZoneInfo.FindSystemTimeZoneById(_options.Timezone ?? "UTC"); foreach (var job in Jobs) { var config = _options.Jobs.SingleOrDefault(entry => entry.Name == job.Name); if (config == null) { var logger = _loggerFactory.CreateLogger(job.FullName); logger.LogWarning($"No job configuration matches '{job.Name}'."); continue; } if (!config.Running) { continue; } var cron = new CronExpression(config.Cron); if (!cron.IsValid) { var logger = _loggerFactory.CreateLogger(job.FullName); logger.LogWarning($"Invalid cron expression for '{job.Name}'."); continue; } var timer = new JobInterval(cron, timezone, async() => await RunAsync(job)); _timers.Add(timer); timer.Run(); } }