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)
{