only send heartbeat when fully initialized

This commit is contained in:
RaidMax 2022-02-01 18:31:55 -06:00
parent 261da918c7
commit b7a76cc4a2

View File

@ -26,7 +26,8 @@ namespace IW4MAdmin.Application.Misc
private readonly ApplicationConfiguration _appConfig; private readonly ApplicationConfiguration _appConfig;
private readonly BuildNumber _fallbackVersion = BuildNumber.Parse("99.99.99.99"); private readonly BuildNumber _fallbackVersion = BuildNumber.Parse("99.99.99.99");
private readonly int _apiVersion = 1; private readonly int _apiVersion = 1;
private bool firstHeartBeat = true; private bool _firstHeartBeat = true;
private static readonly TimeSpan Interval = TimeSpan.FromSeconds(30);
public MasterCommunication(ILogger<MasterCommunication> logger, ApplicationConfiguration appConfig, ITranslationLookup translationLookup, IMasterApi apiInstance, IManager manager) public MasterCommunication(ILogger<MasterCommunication> logger, ApplicationConfiguration appConfig, ITranslationLookup translationLookup, IMasterApi apiInstance, IManager manager)
{ {
@ -97,7 +98,10 @@ namespace IW4MAdmin.Application.Misc
{ {
try try
{ {
await UploadStatus(); if (_manager.IsRunning)
{
await UploadStatus();
}
} }
catch (Exception ex) catch (Exception ex)
@ -107,7 +111,7 @@ namespace IW4MAdmin.Application.Misc
try try
{ {
await Task.Delay(30000, token); await Task.Delay(Interval, token);
} }
catch catch
@ -119,7 +123,7 @@ namespace IW4MAdmin.Application.Misc
private async Task UploadStatus() private async Task UploadStatus()
{ {
if (firstHeartBeat) if (_firstHeartBeat)
{ {
var token = await _apiInstance.Authenticate(new AuthenticationId var token = await _apiInstance.Authenticate(new AuthenticationId
{ {
@ -153,7 +157,7 @@ namespace IW4MAdmin.Application.Misc
Response<ResultMessage> response = null; Response<ResultMessage> response = null;
if (firstHeartBeat) if (_firstHeartBeat)
{ {
response = await _apiInstance.AddInstance(instance); response = await _apiInstance.AddInstance(instance);
} }
@ -161,7 +165,7 @@ namespace IW4MAdmin.Application.Misc
else else
{ {
response = await _apiInstance.UpdateInstance(instance.Id, instance); response = await _apiInstance.UpdateInstance(instance.Id, instance);
firstHeartBeat = false; _firstHeartBeat = false;
} }
if (response.ResponseMessage.StatusCode != System.Net.HttpStatusCode.OK) if (response.ResponseMessage.StatusCode != System.Net.HttpStatusCode.OK)