feat: refactor watchdog

This commit is contained in:
2026-04-28 17:18:14 +02:00
parent f589ae4faf
commit 0a98ee455f
11 changed files with 261 additions and 178 deletions
+1 -20
View File
@@ -1,10 +1,8 @@
package database
import (
"orbits-server/internal/server/bootstrap"
"orbits-server/internal/shared/utility"
"path/filepath"
"time"
"gorm.io/driver/sqlite"
"gorm.io/gorm"
@@ -13,7 +11,7 @@ import (
//var watchdogStop = make(chan struct{})
func KickoffDatabase(workDir string) (*gorm.DB, error) {
func Kickoff(workDir string) (*gorm.DB, error) {
dbLoc := filepath.Join(workDir, "station.db")
db, err := gorm.Open(sqlite.Open(dbLoc), &gorm.Config{
Logger: logger.Discard, // disable gorm logging since its not slog (yet)
@@ -45,20 +43,3 @@ func KickoffDatabase(workDir string) (*gorm.DB, error) {
return db, nil
}
func KickoffDatabaseWatchdog(env bootstrap.Environment, db *gorm.DB) {
timeInterval := time.Second * time.Duration(env.WatchdogInterval)
ticker := time.NewTicker(timeInterval)
go func() {
defer ticker.Stop()
// run the watchdog function once to see if all is well.
watchdog(env, db)
// then defer to a decoupled/disowned golang goroutine
for range ticker.C {
watchdog(env, db)
}
}()
}