Fix a whole bunch of other errors

This commit is contained in:
Nikolaj
2020-09-15 15:14:44 +02:00
parent 44848e567c
commit 633d42039e
39 changed files with 207 additions and 151 deletions

View File

@@ -7,6 +7,8 @@ using Umbraco.Core.Logging;
using Umbraco.Core.Scoping;
using Umbraco.Core.Sync;
using Umbraco.Web.HealthCheck;
using Microsoft.Extensions.Logging;
using ILogger = Microsoft.Extensions.Logging.ILogger;
namespace Umbraco.Web.Scheduling
{
@@ -17,7 +19,7 @@ namespace Umbraco.Web.Scheduling
private readonly HealthCheckNotificationMethodCollection _notifications;
private readonly IScopeProvider _scopeProvider;
private readonly IProfilingLogger _pLogger;
private readonly ILogger _logger;
private readonly Microsoft.Extensions.Logging.ILogger<HealthCheckNotifier> _logger;
private readonly IHealthChecksSettings _healthChecksSettingsConfig;
private readonly IServerRegistrar _serverRegistrar;
private readonly IRuntimeState _runtimeState;
@@ -30,7 +32,7 @@ namespace Umbraco.Web.Scheduling
HealthCheckNotificationMethodCollection notifications,
IMainDom mainDom,
IProfilingLogger pLogger,
ILogger logger,
Microsoft.Extensions.Logging.ILogger<HealthCheckNotifier> logger,
IHealthChecksSettings healthChecksSettingsConfig,
IServerRegistrar serverRegistrar,
IRuntimeState runtimeState,

View File

@@ -5,6 +5,8 @@ using Umbraco.Core.Logging;
using Umbraco.Core.Scoping;
using Umbraco.Core.Services;
using Umbraco.Core.Sync;
using Microsoft.Extensions.Logging;
using ILogger = Microsoft.Extensions.Logging.ILogger;
namespace Umbraco.Web.Scheduling
{
@@ -16,11 +18,11 @@ namespace Umbraco.Web.Scheduling
private readonly IAuditService _auditService;
private readonly ILoggingSettings _settings;
private readonly IProfilingLogger _pLogger;
private readonly ILogger _logger;
private readonly Microsoft.Extensions.Logging.ILogger<LogScrubber> _logger;
private readonly IScopeProvider _scopeProvider;
public LogScrubber(IBackgroundTaskRunner<RecurringTaskBase> runner, int delayMilliseconds, int periodMilliseconds,
IMainDom mainDom, IServerRegistrar serverRegistrar, IAuditService auditService, ILoggingSettings settings, IScopeProvider scopeProvider, IProfilingLogger pLogger, ILogger logger)
IMainDom mainDom, IServerRegistrar serverRegistrar, IAuditService auditService, ILoggingSettings settings, IScopeProvider scopeProvider, IProfilingLogger pLogger, Microsoft.Extensions.Logging.ILogger<LogScrubber> logger)
: base(runner, delayMilliseconds, periodMilliseconds)
{
_mainDom = mainDom;

View File

@@ -4,13 +4,14 @@ using Umbraco.Core;
using Umbraco.Core.Logging;
using Umbraco.Core.Services;
using Umbraco.Core.Sync;
using Microsoft.Extensions.Logging;
namespace Umbraco.Web.Scheduling
{
public class ScheduledPublishing : RecurringTaskBase
{
private readonly IContentService _contentService;
private readonly ILogger _logger;
private readonly Microsoft.Extensions.Logging.ILogger<ScheduledPublishing> _logger;
private readonly IMainDom _mainDom;
private readonly IRuntimeState _runtime;
private readonly IServerMessenger _serverMessenger;
@@ -20,7 +21,7 @@ namespace Umbraco.Web.Scheduling
public ScheduledPublishing(IBackgroundTaskRunner<RecurringTaskBase> runner, int delayMilliseconds,
int periodMilliseconds,
IRuntimeState runtime, IMainDom mainDom, IServerRegistrar serverRegistrar, IContentService contentService,
IUmbracoContextFactory umbracoContextFactory, ILogger logger, IServerMessenger serverMessenger)
IUmbracoContextFactory umbracoContextFactory, Microsoft.Extensions.Logging.ILogger<ScheduledPublishing> logger, IServerMessenger serverMessenger)
: base(runner, delayMilliseconds, periodMilliseconds)
{
_runtime = runtime;
@@ -42,24 +43,24 @@ namespace Umbraco.Web.Scheduling
switch (_serverRegistrar.GetCurrentServerRole())
{
case ServerRole.Replica:
_logger.Debug<ScheduledPublishing>("Does not run on replica servers.");
_logger.LogDebug("Does not run on replica servers.");
return true; // DO repeat, server role can change
case ServerRole.Unknown:
_logger.Debug<ScheduledPublishing>("Does not run on servers with unknown role.");
_logger.LogDebug("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 (_mainDom.IsMainDom == false)
{
_logger.Debug<ScheduledPublishing>("Does not run if not MainDom.");
_logger.LogDebug("Does not run if not MainDom.");
return false; // do NOT repeat, going down
}
// do NOT run publishing if not properly running
if (_runtime.Level != RuntimeLevel.Run)
{
_logger.Debug<ScheduledPublishing>("Does not run if run level is not Run.");
_logger.LogDebug("Does not run if run level is not Run.");
return true; // repeat/wait
}
@@ -98,7 +99,7 @@ namespace Umbraco.Web.Scheduling
catch (Exception ex)
{
// important to catch *everything* to ensure the task repeats
_logger.LogError<ScheduledPublishing>(ex, "Failed.");
_logger.LogError(ex, "Failed.");
}
return true; // repeat

View File

@@ -3,6 +3,7 @@ using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Threading;
using Microsoft.Extensions.Logging;
using Umbraco.Core;
using Umbraco.Core.Composing;
using Umbraco.Core.Configuration.HealthChecks;
@@ -15,6 +16,7 @@ using Umbraco.Core.Services;
using Umbraco.Core.Sync;
using Umbraco.Web.HealthCheck;
using Umbraco.Web.Routing;
using ILogger = Umbraco.Core.Logging.ILogger;
namespace Umbraco.Web.Scheduling
{
@@ -30,7 +32,9 @@ namespace Umbraco.Web.Scheduling
private readonly IServerRegistrar _serverRegistrar;
private readonly IContentService _contentService;
private readonly IAuditService _auditService;
private readonly IProfilingLogger _logger;
private readonly IProfilingLogger _pLogger;
private readonly ILogger _logger;
private readonly ILoggerFactory _loggerFactory;
private readonly IApplicationShutdownRegistry _applicationShutdownRegistry;
private readonly IScopeProvider _scopeProvider;
private readonly HealthCheckCollection _healthChecks;
@@ -56,7 +60,7 @@ namespace Umbraco.Web.Scheduling
public SchedulerComponent(IRuntimeState runtime, IMainDom mainDom, IServerRegistrar serverRegistrar,
IContentService contentService, IAuditService auditService,
HealthCheckCollection healthChecks, HealthCheckNotificationMethodCollection notifications,
IScopeProvider scopeProvider, IUmbracoContextFactory umbracoContextFactory, IProfilingLogger logger,
IScopeProvider scopeProvider, IUmbracoContextFactory umbracoContextFactory, IProfilingLogger pLogger, Core.Logging.ILogger logger, ILoggerFactory loggerFactory,
IApplicationShutdownRegistry applicationShutdownRegistry, IHealthChecksSettings healthChecksSettingsConfig,
IServerMessenger serverMessenger, IRequestAccessor requestAccessor,
ILoggingSettings loggingSettings, IKeepAliveSettings keepAliveSettings,
@@ -68,7 +72,9 @@ namespace Umbraco.Web.Scheduling
_contentService = contentService;
_auditService = auditService;
_scopeProvider = scopeProvider;
_pLogger = pLogger;
_logger = logger;
_loggerFactory = loggerFactory;
_applicationShutdownRegistry = applicationShutdownRegistry;
_umbracoContextFactory = umbracoContextFactory;
@@ -84,6 +90,7 @@ namespace Umbraco.Web.Scheduling
public void Initialize()
{
var backGroundTaskLogger = _loggerFactory.CreateLogger("BackgroundTaskRunner");
// backgrounds runners are web aware, if the app domain dies, these tasks will wind down correctly
_keepAliveRunner = new BackgroundTaskRunner<IBackgroundTask>("KeepAlive", _logger, _applicationShutdownRegistry);
_publishingRunner = new BackgroundTaskRunner<IBackgroundTask>("ScheduledPublishing", _logger, _applicationShutdownRegistry);
@@ -116,7 +123,7 @@ namespace Umbraco.Web.Scheduling
{
LazyInitializer.EnsureInitialized(ref _tasks, ref _started, ref _locker, () =>
{
_logger.Debug<SchedulerComponent>("Initializing the scheduler");
_logger.LogDebug("Initializing the scheduler");
var tasks = new List<IBackgroundTask>();
@@ -131,7 +138,7 @@ namespace Umbraco.Web.Scheduling
var healthCheckConfig = _healthChecksSettingsConfig;
if (healthCheckConfig.NotificationSettings.Enabled)
tasks.Add(RegisterHealthCheckNotifier(healthCheckConfig, _healthChecks, _notifications, _logger));
tasks.Add(RegisterHealthCheckNotifier(healthCheckConfig, _healthChecks, _notifications, _pLogger));
return tasks.ToArray();
});
@@ -141,7 +148,7 @@ namespace Umbraco.Web.Scheduling
{
// ping/keepalive
// on all servers
var task = new KeepAlive(_keepAliveRunner, DefaultDelayMilliseconds, FiveMinuteMilliseconds, _requestAccessor, _mainDom, keepAliveSettings, _logger, _serverRegistrar);
var task = new KeepAlive(_keepAliveRunner, DefaultDelayMilliseconds, FiveMinuteMilliseconds, _requestAccessor, _mainDom, keepAliveSettings, _loggerFactory.CreateLogger<KeepAlive>(), _pLogger, _serverRegistrar);
_keepAliveRunner.TryAdd(task);
return task;
}
@@ -150,7 +157,7 @@ namespace Umbraco.Web.Scheduling
{
// scheduled publishing/unpublishing
// install on all, will only run on non-replica servers
var task = new ScheduledPublishing(_publishingRunner, DefaultDelayMilliseconds, OneMinuteMilliseconds, _runtime, _mainDom, _serverRegistrar, _contentService, _umbracoContextFactory, _logger, _serverMessenger);
var task = new ScheduledPublishing(_publishingRunner, DefaultDelayMilliseconds, OneMinuteMilliseconds, _runtime, _mainDom, _serverRegistrar, _contentService, _umbracoContextFactory, _loggerFactory.CreateLogger<ScheduledPublishing>(), _serverMessenger);
_publishingRunner.TryAdd(task);
return task;
}
@@ -176,7 +183,7 @@ namespace Umbraco.Web.Scheduling
}
var periodInMilliseconds = healthCheckSettingsConfig.NotificationSettings.PeriodInHours * 60 * 60 * 1000;
var task = new HealthCheckNotifier(_healthCheckRunner, delayInMilliseconds, periodInMilliseconds, healthChecks, notifications, _mainDom, logger, _healthChecksSettingsConfig, _serverRegistrar, _runtime, _scopeProvider);
var task = new HealthCheckNotifier(_healthCheckRunner, delayInMilliseconds, periodInMilliseconds, healthChecks, notifications, _mainDom, logger, _loggerFactory.CreateLogger<HealthCheckNotifier>(), _healthChecksSettingsConfig, _serverRegistrar, _runtime, _scopeProvider);
_healthCheckRunner.TryAdd(task);
return task;
}
@@ -185,7 +192,7 @@ namespace Umbraco.Web.Scheduling
{
// log scrubbing
// install on all, will only run on non-replica servers
var task = new LogScrubber(_scrubberRunner, DefaultDelayMilliseconds, LogScrubber.GetLogScrubbingInterval(), _mainDom, _serverRegistrar, _auditService, settings, _scopeProvider, _logger);
var task = new LogScrubber(_scrubberRunner, DefaultDelayMilliseconds, LogScrubber.GetLogScrubbingInterval(), _mainDom, _serverRegistrar, _auditService, settings, _scopeProvider, _pLogger, _loggerFactory.CreateLogger<LogScrubber>());
_scrubberRunner.TryAdd(task);
return task;
}
@@ -209,7 +216,7 @@ namespace Umbraco.Web.Scheduling
var task = new TempFileCleanup(_fileCleanupRunner, DefaultDelayMilliseconds, OneHourMilliseconds,
tempFolderPaths.Select(x=>new DirectoryInfo(x)),
TimeSpan.FromDays(1), //files that are over a day old
_mainDom, _logger);
_mainDom, _pLogger, _loggerFactory.CreateLogger("TempFileCleanup"));
_scrubberRunner.TryAdd(task);
return task;
}