dataSlice = append(dataSlice, i)
if len(dataSlice)==cap(dataSlice){
_ = DBElastic.BulkSendPost(dataSlice)
//Вот здесь почистить слайс данных после пуша в эластик
}
}
не кажется ли вам немножко странным код где вы сравниваете длинну и капасити, при том что выше у вас magic number в коде? почему бы не вынести в переменную конфига/константу/вотэвер число 10000 и не использовать его при сравнениях тоже? получится вроде читаймо const chunkSize = 10000 dataSlice:=make([]models.Data,0,chunkSize) if len(dataSlice)>=chunkSize {...} dataCh это канал? это ваш канал или кафка туда пушит? в любом случае нужна возможность выйти из цикла мне кажется, так что нужно что-то такое for { select { case <- done: // выйти из цикла, что-то идет не так case msg := <-dataCh: // append to buffer } }
dataCh это канал в который я складываю данные уже обработанные другой функцией, не связанной с кафкой
Обсуждают сегодня