Remove requirement for configuring start time for scheduled health checks; if not provided, start with short delay after application start

This commit is contained in:
AndyButland
2017-06-05 10:14:17 +02:00
parent 9b6cad7d82
commit 0366fa73c3
2 changed files with 13 additions and 3 deletions

View File

@@ -24,7 +24,7 @@ namespace Umbraco.Core.Configuration.HealthChecks
}
}
[ConfigurationProperty(FIRST_RUN_TIME_KEY, IsRequired = true)]
[ConfigurationProperty(FIRST_RUN_TIME_KEY, IsRequired = false)]
public string FirstRunTime
{
get

View File

@@ -78,11 +78,21 @@ namespace Umbraco.Web.Scheduling
if (healthCheckConfig.NotificationSettings.Enabled)
{
var delayInMilliseconds = DateTime.Now.PeriodicMinutesFrom(healthCheckConfig.NotificationSettings.FirstRunTime) * 60 * 1000;
if (delayInMilliseconds < DelayMilliseconds)
// If first run time not set, start with just small delay after application start
int delayInMilliseconds;
if (string.IsNullOrEmpty(healthCheckConfig.NotificationSettings.FirstRunTime))
{
delayInMilliseconds = DelayMilliseconds;
}
else
{
// Otherwise start at scheduled time
delayInMilliseconds = DateTime.Now.PeriodicMinutesFrom(healthCheckConfig.NotificationSettings.FirstRunTime) * 60 * 1000;
if (delayInMilliseconds < DelayMilliseconds)
{
delayInMilliseconds = DelayMilliseconds;
}
}
var periodInMilliseconds = healthCheckConfig.NotificationSettings.PeriodInHours * 60 * 60 * 1000;
tasks.Add(new HealthCheckNotifier(_healthCheckRunner, delayInMilliseconds, periodInMilliseconds, e.UmbracoContext.Application));