public override bool PerformRun() { switch (_runtime.ServerRole) { case ServerRole.Replica: _logger.Debug <LogScrubber>("Does not run on replica servers."); return(true); // DO repeat, server role can change case ServerRole.Unknown: _logger.Debug <LogScrubber>("Does not run on servers with unknown role."); return(true); // DO repeat, server role can change } // ensure we do not run if not main domain, but do NOT lock it if (_runtime.IsMainDom == false) { _logger.Debug <LogScrubber>("Does not run if not MainDom."); return(false); // do NOT repeat, going down } // Ensure we use an explicit scope since we are running on a background thread. using (var scope = _scopeProvider.CreateScope()) using (_logger.DebugDuration <LogScrubber>("Log scrubbing executing", "Log scrubbing complete")) { _auditService.CleanLogs(GetLogScrubbingMaximumAge(_settings)); scope.Complete(); } return(true); // repeat }
public override Task PerformExecuteAsync(object?state) { switch (_serverRegistrar.CurrentServerRole) { case ServerRole.Subscriber: _logger.LogDebug("Does not run on subscriber servers."); return(Task.CompletedTask); case ServerRole.Unknown: _logger.LogDebug("Does not run on servers with unknown role."); return(Task.CompletedTask); } // Ensure we do not run if not main domain, but do NOT lock it if (_mainDom.IsMainDom == false) { _logger.LogDebug("Does not run if not MainDom."); return(Task.CompletedTask); } // Ensure we use an explicit scope since we are running on a background thread. using (ICoreScope scope = _scopeProvider.CreateCoreScope()) using (_profilingLogger.DebugDuration <LogScrubber>("Log scrubbing executing", "Log scrubbing complete")) { _auditService.CleanLogs((int)_settings.MaxLogAge.TotalMinutes); _ = scope.Complete(); } return(Task.CompletedTask); }
public override bool PerformRun() { switch (_runtime.ServerRole) { case ServerRole.Replica: _logger.Debug <LogScrubber>("Does not run on replica servers."); return(true); // DO repeat, server role can change case ServerRole.Unknown: _logger.Debug <LogScrubber>("Does not run on servers with unknown role."); return(true); // DO repeat, server role can change } // ensure we do not run if not main domain, but do NOT lock it if (_runtime.IsMainDom == false) { _logger.Debug <LogScrubber>("Does not run if not MainDom."); return(false); // do NOT repeat, going down } // running on a background task, and Log.CleanLogs uses the old SqlHelper, // better wrap in a scope and ensure it's all cleaned up and nothing leaks using (var scope = _scopeProvider.CreateScope()) using (_logger.DebugDuration <LogScrubber>("Log scrubbing executing", "Log scrubbing complete")) { _auditService.CleanLogs(GetLogScrubbingMaximumAge(_settings)); scope.Complete(); } return(true); // repeat }