Size: a a a

Golang Developers — русскоговорящее сообщество

2020 October 21

А

Анатолий in Golang Developers — русскоговорящее сообщество
Там все горутины
источник

SA

Saimon Arzin in Golang Developers — русскоговорящее сообщество
> Вы через pprof посмотрели?
Да
источник

SA

Saimon Arzin in Golang Developers — русскоговорящее сообщество
в реалтайме смотрю через runtime.NumNumGoroutine()
источник

А

Анатолий in Golang Developers — русскоговорящее сообщество
Saimon Arzin
в реалтайме смотрю через runtime.NumNumGoroutine()
ты учитываешь что при запросе на хттп, каждый запрос работает в отдельной горутине?
источник

А

Анатолий in Golang Developers — русскоговорящее сообщество
каждый реквест вне/винт/бд - еще горутины
источник

А

Анатолий in Golang Developers — русскоговорящее сообщество
точка входа main - еще горутина
источник

А

Анатолий in Golang Developers — русскоговорящее сообщество
библиотеки могут создавать горутины которыми ты пользуешься
источник

SA

Saimon Arzin in Golang Developers — русскоговорящее сообщество
Использую для тестов дефолтный http сервер. Все по Максимум просто. Коннектов к базе нет. Это синтетический тест. у меня обработчик получает один http запрос GET: / где внутри используется пул воркеров с конекстом. в качетсве тяжелой работы я беру time.Sleep(), чтобы по контексту рубить горутины, которые долго работают. мейн и еще одна горутина которая асинхронно выводит на экран количество горутин.
источник

SA

Saimon Arzin in Golang Developers — русскоговорящее сообщество
условно у меня такой паттерн. запускаю пул воркеров, если один из них кидает ошибку, то я прокидываю ошибку в канал и дальше на верх во флоу, а остальные воркеры завершаю, через закрытие канала ошибок
источник

А

Анатолий in Golang Developers — русскоговорящее сообщество
и сам запрос одну горутину занимает
источник

D

Dmitry in Golang Developers — русскоговорящее сообщество
господа я прошу прощения за нубский вопрос
подскажите модуль который красиво дампит переменные с именами полей аналогично fmt.Printf("%#v")
но чтобы это было с отступами, типа дерева, аналогично как json_pretty_print
гуглить я умею, нашел spew
но интересует может есть какой-то "стандарт"
спасибо
источник

А

Анатолий in Golang Developers — русскоговорящее сообщество
источник

А

Анатолий in Golang Developers — русскоговорящее сообщество
источник

D

Dmitry in Golang Developers — русскоговорящее сообщество
дело не в гуглении, все это я нашел, но городить велосипед тоже не очень хочу
создавать модуль Utils и пхать туда кучу полезняк явно не выход если уже такое есть
источник

А

Анатолий in Golang Developers — русскоговорящее сообщество
есть логгеры, но большинство имеют свой формат, либо в жсон дампят в одну линию
источник

А

Анатолий in Golang Developers — русскоговорящее сообщество
этот вариант выводит красиво читаемо, но бесполезно с точки зрения системы
источник

D

Dmitry in Golang Developers — русскоговорящее сообщество
понял, тогда пока для учебы и spew достаточно


есть еще вопрос, пока не понял что я делаю не так
type Id struct {
id int
}

type memoryStorage struct {
data map[Id]User
}


вот так работает, в целом вроде бы и неплохо

однако хотелось попробовать бы вот так
type memoryStorage struct {
data map[
reflect.TypeOf(Id.id)]User
}


т.е создать мапу с динамическим типом ид(дабы при смене типа ид не менять мапу), но не понимаю как
подскажите куда копать плиз
источник

А

Анатолий in Golang Developers — русскоговорящее сообщество
нету динамических типов, есть пустой тип interface{}
источник

RS

Roman Sakal in Golang Developers — русскоговорящее сообщество
Saimon Arzin
условно у меня такой паттерн. запускаю пул воркеров, если один из них кидает ошибку, то я прокидываю ошибку в канал и дальше на верх во флоу, а остальные воркеры завершаю, через закрытие канала ошибок
закрытие через канал ошибок звучит как-то странно. было бы понятно, если бы канал ошибок эскалировал вверх проблему, а закрытие было бы через контекст вниз к воркерам
источник

D

Dmitry in Golang Developers — русскоговорящее сообщество
т.е нет возможности узнать тип и создать с ним же мапу ? придется дублировать в любом случае ?
источник