diff --git a/src/Tgstation.Server.Host/Swarm/SwarmService.cs b/src/Tgstation.Server.Host/Swarm/SwarmService.cs index 4ed9ae94fd..3cf7efc2b4 100644 --- a/src/Tgstation.Server.Host/Swarm/SwarmService.cs +++ b/src/Tgstation.Server.Host/Swarm/SwarmService.cs @@ -41,6 +41,11 @@ namespace Tgstation.Server.Host.Swarm /// const int UpdateCommitTimeoutMinutes = 10; + /// + /// Number of seconds between triggering and a health check being performed. + /// + const int SecondsToDelayForcedHealthChecks = 15; + /// /// See for the swarm system. /// @@ -1060,7 +1065,13 @@ namespace Tgstation.Server.Host.Swarm await awakeningTask.ConfigureAwait(false); - if (!swarmController && !nextForceHealthCheckTask.IsCompleted) + if (nextForceHealthCheckTask.IsCompleted && swarmController) + { + // Intentionally wait a few seconds for the other server to start up before interogating it + logger.LogTrace("Next health check triggering in {0}s...", SecondsToDelayForcedHealthChecks); + await asyncDelayer.Delay(TimeSpan.FromSeconds(SecondsToDelayForcedHealthChecks), cancellationToken); + } + else if (!swarmController && !nextForceHealthCheckTask.IsCompleted) { if (!lastControllerHealthCheck.HasValue) {