public SpiderCheckManagerService
        (
            SpiderCheckSettings settings,
            ISpiderRegularCheckService regularCheckService,
            IGlobalCheckInfoService globalCheckInfoService,
            ILogFactory logFactory
        )
        {
            _dailyCheckTimeUtc      = settings.DailyCheckTimeUtc;
            _globalCheckInfoService = globalCheckInfoService;
            _log = logFactory.CreateLog(this);

            if (_dailyCheckTimeUtc < TimeSpan.FromHours(0) || TimeSpan.FromHours(24) <= _dailyCheckTimeUtc)
            {
                throw new ArgumentException(
                          $"Incorrect time of day at {nameof(settings)}.{nameof(settings.DailyCheckTimeUtc)}",
                          nameof(settings));
            }

            _regularCheckRepeatableTask = new RepeatableTask(
                regularCheckService.PerformRegularCheckAsync,
                settings.RegularCheckDurationToWarn,
                async ex => _log.Critical("Regular check", ex),
                async startTime => _log.Warning("Regular check", $"Regular check lasts more then {settings.RegularCheckDurationToWarn}. It starts at {startTime}")
                );
        }
Example #2
0
 public SpiderCheckPeriodicalHandler
 (
     ISpiderCheckManagerService spiderCheckManagerService,
     SpiderCheckSettings settings,
     ILogFactory logFactory
 ) : base(settings.PeriodicalHandlerTimerDelay, logFactory)
 {
     _spiderCheckManagerService = spiderCheckManagerService;
 }