From 9aea219bb6e110da43821e38f65c6b6879ca31fb Mon Sep 17 00:00:00 2001 From: John Cardinal Date: Sat, 10 Sep 2022 22:57:12 +0000 Subject: [PATCH] --- server/AyaNova/biz/JobsBiz.cs | 2 +- server/AyaNova/util/DbUtil.cs | 13 +++++++++++-- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/server/AyaNova/biz/JobsBiz.cs b/server/AyaNova/biz/JobsBiz.cs index 22176957..c808ce03 100644 --- a/server/AyaNova/biz/JobsBiz.cs +++ b/server/AyaNova/biz/JobsBiz.cs @@ -190,7 +190,7 @@ namespace AyaNova.Biz if (!ServerGlobalOpsSettingsCache.DBAVAILABLE) { //This will set dbavailable flag if it becomes available - DbUtil.CheckDatabaseServerAvailable(); + DbUtil.CheckDatabaseServerAvailable(log); return; } diff --git a/server/AyaNova/util/DbUtil.cs b/server/AyaNova/util/DbUtil.cs index 559db08d..0d3a093d 100644 --- a/server/AyaNova/util/DbUtil.cs +++ b/server/AyaNova/util/DbUtil.cs @@ -207,7 +207,7 @@ namespace AyaNova.Util /////////////////////////////////////////////// // Set global flag if db server is connectable // - internal static void CheckDatabaseServerAvailable() + internal static void CheckDatabaseServerAvailable(ILogger log) { //Called by generator when db is down to check if it can connect if (CHECKING_DB_AVAILABLE) return; @@ -215,8 +215,14 @@ namespace AyaNova.Util if (DateTime.UtcNow - CHECKED_DB_AVAILABLE_LAST < CHECK_DB_AVAILABLE_EVERY_INTERVAL) return; CHECKING_DB_AVAILABLE = true; + if (CHECKING_DB_LOG_DOWN_STATUS) + { + log.LogInformation("Database server unreachable pausing Job processing"); + CHECKING_DB_LOG_DOWN_STATUS = false; + } try { + log.LogTrace("Database Down - checking if up yet"); using (AyContext ct = ServiceProviderProvider.DBContext) { var dummy = ct.GlobalBizSettings.FirstOrDefault(z => z.Id == 1); @@ -232,11 +238,14 @@ namespace AyaNova.Util CHECKING_DB_AVAILABLE = false; } //We have db available + log.LogInformation("Database server has become available, resuming Job processing"); ServerGlobalOpsSettingsCache.DBAVAILABLE = true; + CHECKING_DB_LOG_DOWN_STATUS = true; } private static bool CHECKING_DB_AVAILABLE = false; + private static bool CHECKING_DB_LOG_DOWN_STATUS = true; private static DateTime CHECKED_DB_AVAILABLE_LAST = DateTime.MinValue; - private static TimeSpan CHECK_DB_AVAILABLE_EVERY_INTERVAL = new TimeSpan(0, 0, 60); + private static TimeSpan CHECK_DB_AVAILABLE_EVERY_INTERVAL = new TimeSpan(0, 0, 30); ///////////////////////////////////////////////////////////