собирают данные для записи в кликхаус по тикеру (у каждой свой тикер). Они собирают данные и записывают в кликхаус пачками (каждая горутина в отдельную таблицу). Хочу, чтобы одновременно только одна горутина делала запросы в кликхаус. Как можно блокировать другие горутины в момент, когда одна из них получает тик и начинает работать?
Мьютекс же
Не надо блокировать. Надо выделить горутину для общения с ch, а остальные пусть разговаривают с ней через канал
О, спасибо. Решение хорошее. Таким образом пока один запрос не выполнится - другие не начнут 👍🏻
можно ограничивать количество горутин через буферизированный канал. ели они в цикле создаются пишешь в канал, лимит - это буфер канала. когда горутина закончила - вычитываешь из канала Ну если они тупо в цикле фор создаются как я понял
Ну, я уже решил сделать, как говорил @onokonem, я в горутинах оставил тикеры, которые отправляют по тику данные о таблице в канал, а чтение из редиса и запись в кх я уже делаю в другой горутине, когда получаю на этот канал.
Обсуждают сегодня