Задать вопрос

Постоянное соединение mysql или как удержать соединение?

Задача такая: нужно получить одну запись из бд, затем отправить запрос по адресу полученному из записи бд и получить необходимые данные, далее записать в бд и повторить процедуру.

Честно говоря у меня возникает проблема с реализацией на nodejs. На любом другом языке(php, go и тд) таких проблем бы не возникло, но здесь.

Держать постоянное соединение с mysql невозможно из-за настроек да и самое архитектуры mysql. Создавать пул и каждый раз создавать новое соединение то не очень хорошая идея(или кто-то имеет другое мнение?).

Подскажите, как лучше всего реализовать данную задачу на nodejs? Или для подобных задач лучше перейти на go?
  • Вопрос задан
  • 1923 просмотра
Подписаться 5 Оценить 1 комментарий
Пригласить эксперта
Ответы на вопрос 2
ERrorMAKros
@ERrorMAKros
Front-End/Back-End Developer
Когда я столкнулся с этой проблемной (не на nodejs, а на java), то причиной оказалось то, что если соединение не передает данные приблизительно минут 15 - MySQL сервер принудительно разрывает соединение с клиентом, хотя клиент не ловит никаких событий по этому поводу до тех пор пока не начнет передавать данные - и в этом моменте ловим exeption о том, что нет соединения. Даже MySQL опция MYSQL_OPT_RECONNECT не работает...

Я выкрутился сл. образом - с момента первого удачного соединения с MySQL каждые 5 минут (в таймере) клиент отправлял пустой запрос в базу (SELECT 1) - это помогало поддержать соединение - MySQL сервер сбрасывал таймер timeout`а пользователя и одно соединение удавалось поддерживать месяцамим!
Ответ написан
Комментировать
VGrabko
@VGrabko
Golang, Php, Js
пулл коннектов и поток которые время от времени проверяет конекты и если надо пересоздаёт. Везде примерно так и работает. Про ноду не знаю.

UPD.
Вы что в Go делали пулл который хранил пулл ? ахах
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы