diff --git a/ATxCommon/Serializables/ServiceStatus.cs b/ATxCommon/Serializables/ServiceStatus.cs index 5df0e42f97ef1261d58aa3a6c1f953cb8eff457b..216ae1c5b18ffbab6fcb4f9f27192bf5cb3ebe14 100644 --- a/ATxCommon/Serializables/ServiceStatus.cs +++ b/ATxCommon/Serializables/ServiceStatus.cs @@ -75,6 +75,14 @@ namespace ATxCommon.Serializables Log.Trace("Finished serializing [{0}].", _storageFile); } + /// <summary> + /// Wrapper to serialize XML if time since last is above threshold (default = 1 min). + /// </summary> + public void SerializeHeartbeat(int timeout=60) { + if (TimeUtils.SecondsSince(_lastStatusUpdate) >= timeout) + Serialize(); + } + public static ServiceStatus Deserialize(string file, ServiceConfig config) { Log.Trace("Trying to deserialize status XML file [{0}].", file); ServiceStatus status; diff --git a/ATxService/AutoTx.cs b/ATxService/AutoTx.cs index 622b409e3c48aca0fa7233efcfcffd04b0232d0e..edca7f88715667a7c50a56706736495986ce8481 100644 --- a/ATxService/AutoTx.cs +++ b/ATxService/AutoTx.cs @@ -598,10 +598,7 @@ namespace ATxService // mandatory tasks, run on every call: SendLowSpaceMail(SystemChecks.CheckFreeDiskSpace(_config.SpaceMonitoring)); UpdateServiceState(); - - // update the status heartbeat at least once a minute: - if (TimeUtils.SecondsSince(_status.LastStatusUpdate) >= 60) - _status.Serialize(); + _status.SerializeHeartbeat(); if (TimeUtils.SecondsSince(_lastUserDirCheck) >= 120) CreateIncomingDirectories();