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

15
main.go
View File

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