only save state if has changes
All checks were successful
Build and Publish / BuildAndDeploy (push) Successful in 1m47s

This commit is contained in:
matst80
2024-11-10 00:14:29 +01:00
parent 7de9693083
commit bbc9b9476d

View File

@@ -53,16 +53,23 @@ type App struct {
} }
func (a *App) Save() error { func (a *App) Save() error {
hasChanges := false
for id, grain := range a.pool.GetGrains() { for id, grain := range a.pool.GetGrains() {
if grain == nil { if grain == nil {
continue continue
} }
if grain.GetLastChange() > a.storage.LastSaves[id] {
hasChanges = true
log.Printf("Saving grain %s\n", id) log.Printf("Saving grain %s\n", id)
err := a.storage.Store(id, grain) err := a.storage.Store(id, grain)
if err != nil { if err != nil {
log.Printf("Error saving grain %s: %v\n", id, err) log.Printf("Error saving grain %s: %v\n", id, err)
} }
} }
}
if !hasChanges {
return nil
}
return a.storage.saveState() return a.storage.saveState()
} }