Beispiel #1
0
        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();
            }
        }
Beispiel #2
0
        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();
            }
        }