Fix/missed automated task execution failure crashes server on startup (#1019)

* Catch automated backup task errors

* Catch automated udpate task errors

* Catch automated webui update task errors
This commit is contained in:
schroda
2024-09-01 00:54:51 +02:00
committed by GitHub
parent 9a1e4df408
commit 5dced82e5a
3 changed files with 40 additions and 26 deletions

View File

@@ -84,9 +84,13 @@ object ProtoBackupExport : ProtoBackupBase() {
}
val task = {
cleanupAutomatedBackups()
createAutomatedBackup()
preferences.edit().putLong(LAST_AUTOMATED_BACKUP_KEY, System.currentTimeMillis()).apply()
try {
cleanupAutomatedBackups()
createAutomatedBackup()
preferences.edit().putLong(LAST_AUTOMATED_BACKUP_KEY, System.currentTimeMillis()).apply()
} catch (e: Exception) {
logger.error(e) { "scheduleAutomatedBackupTask: failed due to" }
}
}
val (hour, minute) = serverConfig.backupTime.value.split(":").map { it.toInt() }

View File

@@ -110,20 +110,24 @@ class Updater : IUpdater {
}
private fun autoUpdateTask() {
val lastAutomatedUpdate = preferences.getLong(lastAutomatedUpdateKey, 0)
preferences.edit().putLong(lastAutomatedUpdateKey, System.currentTimeMillis()).apply()
try {
val lastAutomatedUpdate = preferences.getLong(lastAutomatedUpdateKey, 0)
preferences.edit().putLong(lastAutomatedUpdateKey, System.currentTimeMillis()).apply()
if (getStatus().running) {
logger.debug { "Global update is already in progress" }
return
}
if (getStatus().running) {
logger.debug { "Global update is already in progress" }
return
}
logger.info {
"Trigger global update (interval= ${serverConfig.globalUpdateInterval.value}h, lastAutomatedUpdate= ${Date(
lastAutomatedUpdate,
)})"
logger.info {
"Trigger global update (interval= ${serverConfig.globalUpdateInterval.value}h, lastAutomatedUpdate= ${Date(
lastAutomatedUpdate,
)})"
}
addCategoriesToUpdateQueue(Category.getCategoryList(), clear = true, forceAll = false)
} catch (e: Exception) {
logger.error(e) { "autoUpdateTask: failed due to" }
}
addCategoriesToUpdateQueue(Category.getCategoryList(), clear = true, forceAll = false)
}
@OptIn(DelicateCoroutinesApi::class)