This commit is contained in:
2022-09-10 22:57:12 +00:00
parent 203346e808
commit 9aea219bb6
2 changed files with 12 additions and 3 deletions

View File

@@ -190,7 +190,7 @@ namespace AyaNova.Biz
if (!ServerGlobalOpsSettingsCache.DBAVAILABLE) if (!ServerGlobalOpsSettingsCache.DBAVAILABLE)
{ {
//This will set dbavailable flag if it becomes available //This will set dbavailable flag if it becomes available
DbUtil.CheckDatabaseServerAvailable(); DbUtil.CheckDatabaseServerAvailable(log);
return; return;
} }

View File

@@ -207,7 +207,7 @@ namespace AyaNova.Util
/////////////////////////////////////////////// ///////////////////////////////////////////////
// Set global flag if db server is connectable // 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 //Called by generator when db is down to check if it can connect
if (CHECKING_DB_AVAILABLE) return; if (CHECKING_DB_AVAILABLE) return;
@@ -215,8 +215,14 @@ namespace AyaNova.Util
if (DateTime.UtcNow - CHECKED_DB_AVAILABLE_LAST < CHECK_DB_AVAILABLE_EVERY_INTERVAL) if (DateTime.UtcNow - CHECKED_DB_AVAILABLE_LAST < CHECK_DB_AVAILABLE_EVERY_INTERVAL)
return; return;
CHECKING_DB_AVAILABLE = true; 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 try
{ {
log.LogTrace("Database Down - checking if up yet");
using (AyContext ct = ServiceProviderProvider.DBContext) using (AyContext ct = ServiceProviderProvider.DBContext)
{ {
var dummy = ct.GlobalBizSettings.FirstOrDefault(z => z.Id == 1); var dummy = ct.GlobalBizSettings.FirstOrDefault(z => z.Id == 1);
@@ -232,11 +238,14 @@ namespace AyaNova.Util
CHECKING_DB_AVAILABLE = false; CHECKING_DB_AVAILABLE = false;
} }
//We have db available //We have db available
log.LogInformation("Database server has become available, resuming Job processing");
ServerGlobalOpsSettingsCache.DBAVAILABLE = true; ServerGlobalOpsSettingsCache.DBAVAILABLE = true;
CHECKING_DB_LOG_DOWN_STATUS = true;
} }
private static bool CHECKING_DB_AVAILABLE = false; 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 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);
/////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////