Добрый день. Есть функция для работы с БД
func new_query_select(Query string, args ...interface{}) []mysql.Row{
db := mysql.New("tcp", "", "127.0.0.1:3306", "root", "password", "test")
err := db.Connect()
if err != nil {
log.Println("Не удалось подключиться к базе данных")
}
rows, _, err := db.Query(Query,args...)
if err != nil {
log.Println("Не удалось выполнить запрос",Query)
}
return rows
}
В других функциях я формирую sql и передаю в эту выполняющюю функцию.
Возможно Вы скажете- это корявый вариант, но всё-же если идти по этому пути- я столкнулся с проблемой, когда начал имитировать большое количество запросов и вызывать эту функцию - мне выдало исключение, "Не удалось выполнить запрос".
На сколько я понял-одна из функций приложения обратилась к этой функции(new_query_select) когда она работала с БД, потому что, если запросы идут редко-то всё нормально. Как только начинаю слать, скажем 10-15 запросов в секунду, что-то происходит и после этого уже никакой другой запрос не работает и переходит в исключение "Не удалось выполнить запрос".
Вопрос: Что делать, что-б не было этого глюка? Может его в горутину поместить или что можно сделать?