diff --git a/main.go b/main.go index 5d0b7b0..737a41d 100644 --- a/main.go +++ b/main.go @@ -71,9 +71,12 @@ func main() { luaStates := loadLuaStates(matches) achievements := loadAchievements(luaStates) wg := sync.WaitGroup{} - // wg.Add(1) + wg.Add(1) // We can save the achievements to the database while doing something else unrelated - // go saveAchievementsToDB(&db, achievements) + go func() { + defer wg.Done() + saveAchievementsToDB(&db, achievements) + }() saveAchievementsToSourceFiles(luaStates, achievements) wg.Wait() } @@ -179,6 +182,7 @@ func addAlreadySeen(strContent string, achievements *sync.Map) string { } func saveAchievementsToDB(db *DB, achievements *sync.Map) { + count := 0 achievements.Range(func(k, v any) bool { playerName := k.(string) playerAchievements := v.(*[]NSQMessage) @@ -186,8 +190,13 @@ func saveAchievementsToDB(db *DB, achievements *sync.Map) { for _, ach := range *playerAchievements { Save(ach, db) } + count++ + if count%1000 == 0 { + logger.Info("Saved %d achievements", count) + } return true }) + logger.Info("Saved %d achievements", count) } func loadLuaStates(matches []string) *sync.Map {