У меня есть функция, вызывающая подпрограмму go, которая вызывает внутри нее дополнительные функции. Тем не менее, эти подпрограммы выходят до полного завершения. Как бы убедиться, что весь базовый код в функции (migrateUserHelper) выполняется перед выходом. Вот мой код ниже:
func MigrateUsers(){
var wg sync.WaitGroup
userCount:=10 //userDAO.GetUserCount()
limitSize:=2
count:=0
divisor = userCount/limitSize
for divisor>0{
wg.Add(1)
go migrateUserHelper(limitSize,&wg,count)
divisor =divisor -1
count=count +1
}
wg.Wait()
fm.Println("DONE BATCHES")
}
func migrateUserHelper(limitSize int, count int, wg *sync.WaitGroup)
{
defer wg.Done()
fmt.Println("Start batch "+strconv.Itoa(count))
users:= userDAO.GetUsers(limitSize)
fmt.Println("Fetched Users for batch "+ strconv.Itoa(count))
userDAO.BulkUpdateUsers(users)
fmt.Println("Reconciled Users for batch "+ strconv.Itoa(count))
}
Я пытаюсь обновить МНОГО записей в базе данных одновременно в разных подпрограммах.
Спасибо