Пример #1
0
        public async Task ProcessCheck(CheckTypeEnum checkType, string schedule, CancellationToken cancellationToken)
        {
            var initialDelayTime = TimeSpan.FromMinutes(0);

            await Task.Delay(initialDelayTime);

            while (!cancellationToken.IsCancellationRequested)
            {
                CronExpression expression  = CronExpression.Parse(schedule);
                var            nextRunTime = expression.GetNextOccurrence(DateTime.UtcNow);
                var            delay       = nextRunTime - DateTime.UtcNow;

                if (delay == null)
                {
                    return;
                }

                await _processor.ExecuteCommand(checkType);

                if (cancellationToken.IsCancellationRequested)
                {
                    return;
                }

                await Task.Delay(delay.Value);
            }
        }
Пример #2
0
 public async Task RunManualCheck(CheckTypeEnum checkType)
 {
     await _commandsProcessor.ExecuteCommand(checkType);
 }