func PreparedDataInCache(connect *connectToDB, secondDB *secondDB) error {
                  
                  
                  var wg *sync.WaitGroup
                  
                  
                   var err error
                  
                  
                   wg.Add(1)
                  
                  
                   repo := db.UsersRepo(connect)
                  
                  
                   go func(w *sync.WaitGroup) {
                  
                  
                    defer w.Done()
                  
                  
                    users, err := repo.Collection(nil, nil)
                  
                  
                    if err != nil {
                  
                  
                     log(error)
                  
                  
                    }
                  
                  
                  
                  
                  
                   
                  
                  
                    for _, user := range users {
                  
                  
                     err := secondDB.Push(user)
                  
                  
                     if err != nil {
                  
                  
                      log(error)
                  
                  
                     }
                  
                  
                    }
                  
                  
                  
                  
                  
                   }(wg)
                  
                  
                  
                  
                  
                   wg.Wait()
                  
                  
                   return err
                  
                  
                  }
                  
                  
                  
                  
                  
                  функция в которой из одной БД берется вся коллекция users и по одному записывается в новую БД
                  
                  
                  без WG отрабатывает ок
                  
                  
                  но я это пытаюьс сделать как бы за кадром и побыстрее
                  
                  
                  в данном случае просто висит запущенная программа
                  
                  
                  
                  
                  
                  что не верно?
                  
                  
                
1. sync.WaitGroup не инициализированно, это вообще должно паниковать при первом вызове любого метода. 2. Запуск одной горутины не даёт выигрыша, лучше в цикле обработкеи users запустить горутины, и вот их ждать через sync.WaitGroup
Обсуждают сегодня