Backup
This commit is contained in:
@@ -24,37 +24,50 @@ namespace AyaNova.Biz
|
||||
//
|
||||
public static async Task DoWorkAsync(AyContext ct)
|
||||
{
|
||||
|
||||
if (BackupIsRunning) return;
|
||||
|
||||
//get NOW in utc
|
||||
DateTime utcNow = DateTime.UtcNow;
|
||||
|
||||
//what time should we backup today?
|
||||
DateTime todayBackupTime = new DateTime(utcNow.Year, utcNow.Month, utcNow.Day, ServerGlobalOpsSettings.BackupTime.Hour, ServerGlobalOpsSettings.BackupTime.Minute, 0, DateTimeKind.Utc);//first start with NOW
|
||||
|
||||
//Are we there yet?
|
||||
if (utcNow < todayBackupTime) return;//nope
|
||||
|
||||
//Yes, we've passed into the backup window time, but that's also true if we just ran the backup as well so
|
||||
//need to check for that as well...
|
||||
|
||||
//Has last backup run more than 24 hours ago?
|
||||
if (ServerGlobalOpsSettings.LastBackup > utcNow.AddHours(-24))
|
||||
return;//nope, so we have already run today's backup
|
||||
|
||||
//Ok, we're into backup time and it's been more than 24 hours since it last ran so let's do this...
|
||||
BackupIsRunning = true;
|
||||
log.LogTrace("Backup starting");
|
||||
try
|
||||
{
|
||||
BackupIsRunning = true;
|
||||
log.LogTrace("Backup starting");
|
||||
|
||||
//*************
|
||||
//*************
|
||||
|
||||
log.LogInformation("SIMULATED BACKUP RUNNING NOW - TORA TORA TORA!");
|
||||
|
||||
//***************
|
||||
|
||||
//BACKUP TORA TORA TORA!
|
||||
//***************
|
||||
//Update last backup
|
||||
var biz = GlobalOpsSettingsBiz.GetBiz(ct);
|
||||
var OpSet = await biz.GetAsync(false);
|
||||
OpSet.LastBackup = utcNow;
|
||||
await biz.ReplaceAsync(OpSet);
|
||||
|
||||
//Update last backup
|
||||
BackupIsRunning = false;
|
||||
log.LogTrace("Backup completed");
|
||||
log.LogTrace("Backup completed");
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
log.LogError(ex, "BACKUP FAILED!");
|
||||
throw ex;
|
||||
}
|
||||
finally
|
||||
{
|
||||
BackupIsRunning = false;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user