MySQL-соединение err (с golang): слишком много соединений, слишком много (еще 8000) сеансов спящего режима запущены show processlist


1 принят

У вас есть отложенный внутри цикла, который просто подталкивает строку. Закройте функцию в стеке и выполнит, когда функция вернется. Вы, вероятно, хотите что-то вроде этого:

for i:=0;i<500000;i++{
    ...
    sql := "SELECT * FROM memDB1 where session_key='" + session_key+"'"
    row, err := db.Query(sql)
    if err != nil {
        Log(LL_ERROR, "Query err:", err.Error(), ".")
        continue
    }
    row.Close()
    ...
}

Поддержка документов: https://blog.golang.org/defer-panic-and-recover

MySQL, идти,

mysql,go,

0

Ответов: 1


1 принят

У вас есть отложенный внутри цикла, который просто подталкивает строку. Закройте функцию в стеке и выполнит, когда функция вернется. Вы, вероятно, хотите что-то вроде этого:

for i:=0;i<500000;i++{
    ...
    sql := "SELECT * FROM memDB1 where session_key='" + session_key+"'"
    row, err := db.Query(sql)
    if err != nil {
        Log(LL_ERROR, "Query err:", err.Error(), ".")
        continue
    }
    row.Close()
    ...
}

Поддержка документов: https://blog.golang.org/defer-panic-and-recover

MySQL, идти,
Похожие вопросы