Артем
Alexander
ого
Артем
Я бы убрал errgroup и вызывал последовательно
Тоже думал, по сути запросы не тяжкие, прироста сильного не будет
Артем
ого
Любые коментарии приветствуются, я не особо в го..
Alexander
нее Я просто не видел такого
Alexander
в хорошоем смысле
Nickolay
Всем привет! Была ли у кого подобная ошибка? Я глянул - в пакете файла действительно нет такого. Пробовал удалить пакет и заново поставить - не помогло
Alexander
Я про ошибки
Артем
Я про ошибки
Ну вообще у меня была надежда на прекращение выполнения запросов если один из них отвалился, но тут просто грамотная обработка ошибок. Как прекращать запросы посреди функции в голову так и не пришло, кроме как напихать селектов через строчку)
Alexander
а есть исходник errgroup
Alexander
глянуть
kostyaBro
А по одному каждый запрос проходит?
kostyaBro
Артем
а есть исходник errgroup
Это пакет, там в принципе ниче сложного
kostyaBro
Любые коментарии приветствуются, я не особо в го..
можно не создавать project, object, attribute а просто прокидывать &S2T.project S2T.object и тд
kostyaBro
а есть исходник errgroup
https://cs.opensource.google/go/x/sync/+/refs/tags/v0.1.0:errgroup/errgroup.go
Артем
можно не создавать project, object, attribute а просто прокидывать &S2T.project S2T.object и тд
Я почему то думал, что будет паника из за того что пишу одновременно
Артем
в разные места
Логично да, спасибо)
kostyaBro
И почему oracle если не секрет)?
Артем
Так проверял?
Щас побалуюсь)
Артем
И почему oracle если не секрет)?
А у самого ответа нет, на него завязались люди и сидят, собираются вроде как на постгрес перейти
kostyaBro
А у самого ответа нет, на него завязались люди и сидят, собираются вроде как на постгрес перейти
ну тоесть ответ потому что так уже в компании заведено может вдруг для тутора решил почемуто оракл
Артем
И почему oracle если не секрет)?
Я могу больше сказать, я даже не знаю зачем это пишу, потому что с фронта приходит запрос, кидается на бэк, и бэк его перекидывет дальше в soap сервис, который все делает и возвращает обратно поцепочке
Илья
ну тоесть ответ потому что так уже в компании заведено может вдруг для тутора решил почемуто оракл
closed-source Oracle 👎🏻👎🏻👎🏻👎🏻👎🏻👎🏻👎🏻 «««««««< open source postgres 💪🏿💪🏿💪🏻💪🏿💪🏿💪🏿💪🏿
kostyaBro
отгадка, наверное
Peter
Всем привет! У меня есть проблема с Golang приложением и mongodb replicaset. Есть сценарий работы с реплика сетом - под нагрузкой (несколько тысяч RPS) убиваем мастер ноду, после этого реплика сет переконфигурируется, определяется новый мастер. Но новый мастер падает из-за того, что к нему прилеает очень большое количество новых коннектов. Ощущение. что в драйвере в Golang-приложении нет ограничения на количество коннектов в случае смены мастера. Может кто сталкивался с такой проблемой, можете что-нибудь посоветовать?
Артем
Не ну, по факту тот сервис может являться бэком, просто лишнее звено между ними. Либо я не понимаю чего то
Илья
soap это который с xml?
Артем
Илья
конец анекдота
Илья
Есть ли смысл сейчас его изучать? Вроде все переходят на альтернативы
Артем
Есть ли смысл сейчас его изучать? Вроде все переходят на альтернативы
Честный ответ нет) я вот первый раз столкнулся потому что легаси
Артем
Везде пишут, что soap когда есть логика сложная и т д, но по моему сейчас есть gRPC для такого
Артем
Так проверял?
Последовательно запустил, вроде не отваливается ничего, забавно
kostyaBro
kostyaBro
🤔
Артем
Прям друг за другом за время до 10 секунд?
Да, с одним контекстом, то есть если я правильно понимаю, то в сумме не превышает 10
kostyaBro
да вск верно
Артем
Может на уровне базы ограничение на клиентов стоит, хотя все равно отрабатывает же, в общем не буду выпендриваться, запросы не тяжелые
kostyaBro
да не дичь
kostyaBro
какбудто чтото с контекстом
kostyaBro
но тоже дичь
Илья
Пишет именно context timeout exceeded?
kostyaBro
Пишет именно context timeout exceeded?
что интересно, на скрине выше, да
kostyaBro
я думаю что если ради эксперимента запустить с разными контекстами но параллельно
kostyaBro
а да, это другое
kostyaBro
обрывает бд может быть
Илья
вообще как вариант попробовать напрямую через database/sql
Nickolay
А на твоей машине стоит openssl?
да стоит, решил пока флагом отключения ssl
Артем
вообще как вариант попробовать напрямую через database/sql
Взял на заметку, тоже поковыряю как-нибудь
Null
🖥 Goose — инструмент для миграции баз данных Может запускать миграции в виде файлов SQL на диске или встроенных в функции Go. Это означает, что вы можете отправить автономный двоичный файл для выполнения миграций без каких-либо зависимостей. Поддерживает неупорядоченные миграции. Имеется поддержка БД: Redshift, MySQL, Postgres, Clickhouse и другие. Стоимость: #бесплатно. $ go install github.com/pressly/goose/v3/cmd/goose@latest 🖥 Github ➡️ Инструкции к установке @Golang_google
Robert
🖥 Goose — инструмент для миграции баз данных Может запускать миграции в виде файлов SQL на диске или встроенных в функции Go. Это означает, что вы можете отправить автономный двоичный файл для выполнения миграций без каких-либо зависимостей. Поддерживает неупорядоченные миграции. Имеется поддержка БД: Redshift, MySQL, Postgres, Clickhouse и другие. Стоимость: #бесплатно. $ go install github.com/pressly/goose/v3/cmd/goose@latest 🖥 Github ➡️ Инструкции к установке @Golang_google
на самом деле все инструменты миграции можно условно разделить на два типа: 1) где SQL команды для накатывания изменений и откатывания изменений в двух разных файлах и типа в имени файла используется кодовое слово _down или _up 2) или где команды наката и отката в одном файле. И специальной строчкой комментариев разделяется блок наката и отката. Вот goose это данный тип. мне больше нравится 2, потому что имхо меньше когнтивиной нагрузки.
Yehor
Всем привет, я ток начинаю учить Go и учу по книге. У меня есть 5-ти летний опыт написания программ на C# Unity и понимаю что такое интерфейсы, структуры и прочее. Вопрос следующий, правильно ли я использую интерфейс? Каким образом в данном примере я его использую? что за махинация синтаксиса w*word?
Андрей
как же скучно я живу
Yehor
понял, благодарю
Yehor
var w IFuck = &word{"a", "f"} w.name()
для меня эта запись самая странная так как не совсем понимаю как так получается что я реализую интерфейс не имея даже ссылки на него при реализации, обязательно ли для реализации интерфейса нужно иметь структуру?
Кіт ✙
var w IFuck = &word{"a", "f"} w.name()
тип указывать не обязательно, компилятор сам выведет, что это указатель на word. А интерфейс... Ну, структура и так его удовлетворяет, так зачем это обозначать
Dmitry
для меня эта запись самая странная так как не совсем понимаю как так получается что я реализую интерфейс не имея даже ссылки на него при реализации, обязательно ли для реализации интерфейса нужно иметь структуру?
да. в го интерфейсы работают немного по другому. структура реализует класс неявно, реализуя методы из этого интерфейса. в c# вроде нужно явно прописать implements.
Кіт ✙
это чтоб человеку понятно было
человек и так поймёт, это просто лишнее и ненужное
Vladislav
Кіт ✙
C# там класс наследуется от интерфейса и реализует его
да, в шарпе интерфейс - это абстрактный класс без имплементированных методов (по крайней мере, в жаве так). Здесь же - просто контракт, описывающий необходимые методы для объекта
Кіт ✙
типо var w IFuck будет достаточно?
нет, ты объявляешь переменную типа IFuck
Кіт ✙
кстати, в го немного другая конвенция по именованию интерфейсов - вместо префикса I-, добавляется постфикс -er
Кіт ✙
type Fucker interface получается, да. Вы проходили го тур?
Кіт ✙
если нет, то пройдите. go.dev/tour