Пример #1
0
        public async Task DoWorkAsync(CancellationToken cancellationToken)
        {
            var(_, enablePurgeSetting) = await _settingsService.GetSettingAsync("EnablePurge", cancellationToken);

            var(_, purgeAgeMinutesSetting) = await _settingsService.GetSettingAsync("PurgeAgeMinutes", cancellationToken);

            if (!bool.TryParse(enablePurgeSetting, out var enablePurge) || !int.TryParse(purgeAgeMinutesSetting, out var purgeAgeMinutes) || !enablePurge)
            {
                _logger.LogInformation("Data purge is disabled, skipping.");
                return;
            }

            var purgeCutoff = DateTime.UtcNow - TimeSpan.FromMinutes(purgeAgeMinutes);

            _logger.LogInformation($"Purging snapshot and alert data before {purgeCutoff:MM/dd/yy H:mm}");

            var snapshotPurgedCount = await _snapshotService.DeleteOldAsync(purgeCutoff, cancellationToken);

            _logger.LogInformation($"Purged {snapshotPurgedCount} snapshot(s).");

            var alertPurgedCount = await _alertService.DeleteOldAsync(purgeCutoff, cancellationToken);

            _logger.LogInformation($"Purged {alertPurgedCount} alert(s).");
        }