Size: a a a

2021 June 21

p

pragus in Go-go!
Возьмите и отладчиком посмотрите.
источник

RS

Roman Sharkov in Go-go!
https://github.com/romshark/sched/releases/tag/v1.1.1

короче всё затестил, всё, вроде как, работает 🙂
источник

DF

Durty Free in Go-go!
А это что?
источник

ЯК

Ярослав Коробейников... in Go-go!
Я тут недавно покопался в сгенерированных протобафом коде и обнаружил интересные проверки на которые раньше не обращал внимания типа
func (x *Limits) GetLimits() []*Limit {
 if x != nil {
   return x.Value
 }
 return nil
}

Стало интересно, по бырому наваял проверку чтобы прям ручками посмотреть
type someStruct struct {
 val int64
}

func (s *someStruct) Val() {
 if s != nil {
   log.Info("s != nil")
 } else {
   log.Error("s is nil!")
 }
}

func Some(s *someStruct) {
 s.Val()
}

func main() {
 s := &someStruct{}
 s.Val()
 s = nil
 Some(s)
}

Вывод как и ожидалось
INFO[0000] s != nil                                     
ERRO[0000] s is nil!

То бишь мы буквально у нулла можем вызывать методы.
Я понимаю что
func (s *someStruct) Val()

Это синтаксический сахар для
func Val(s *someStruct)

Но выглядит довольно такие интересно.

Но мне интересно часто ли это используется в коде? (проверка на нил ссылки внутри метода этой же структуры)  Я допустим только в протобафе такое встречал, в обычном коде я такое не помню что бы видел..... Кто использует?
источник

Lk

Liton khan in Go-go!
connect ≠ logindisconnect ≠ logout
источник

OJ

O . J in Go-go!
>> соединение не закрываю, в коде оно одно, глобальное на программу

Тут нужно больше деталей, если вы не закрываете соединение  с базой после каждого запроса к ней то за вас никто этого не сделает и тут уже очевидно что у вас утечка.
источник

SN

Stanislav N. in Go-go!
Несколько тысяч это не проблема вообще. Вы про файловые дескрипторы слышали?
источник

VS

Vladislav Semyachkin in Go-go!
50 - это несколько?)
источник

ВС

Владимир Столяров... in Go-go!
Вообще-то очень даже сделает. Там под капотом sql.DB, где все это управляется "само"
источник

ВС

Владимир Столяров... in Go-go!
Если конечно не доставать оттуда сырое соединение
источник

SN

Stanislav N. in Go-go!
Не было там про 50к, было про 10к.
источник

OJ

O . J in Go-go!
если мы не отпустим соединение и не вернем его в пул то каким образом это произайдет “само”?
источник

VS

Vladislav Semyachkin in Go-go!
Так там может открывается не одно соединение на каждый запрос
источник

ВС

Владимир Столяров... in Go-go!
Если брать сырое, то да, надо закрывать. А если просто запросы выполнять, пул ими управляет сам
источник

ВС

Владимир Столяров... in Go-go!
Ну или транзакцию открывать. Тогда да, её надо закрыть.
источник

OJ

O . J in Go-go!
зачем делать иначе?
источник

G

GoDenis in Go-go!
А при чем тут они?
источник

SN

Stanislav N. in Go-go!
Ограничение оных на сервере с БД?
источник

G

GoDenis in Go-go!
Тогда почему возникает ошибка нехватки сокетов? Когда sqlite - этого не происходит, переехал на mysql - наложились коннекты на локалхост и приехали
источник

G

GoDenis in Go-go!
Я озвучил проблему, причину я прекрасно знаю. Вопрос в том, почему пул множит коннекты, когда у меня один Коннект на программу, дальше просто выполняю запросы стандартными методами gorm
источник