Найти - Пользователи
Полная версия: MySQLdb реконнект при разрыве
Начало » Базы данных » MySQLdb реконнект при разрыве
1
lobster
Всем привет!
Вобщем вопрос в сабже. Имеет ли библиотека встроеные механизмы переподключения при разрыве соединения, или нужно самому додумывать. Целесообразнее наверное, лучше юзать какой нибудь менеджер пула соединений, но у меня простой скрипт для административных задач, просто хочу убедится чтобы в дальнейшем не было неожиданностей.
4kpt_III
Используем алхимию и не парим себе и народу мозг. Самый лучший и пока самый действенный вариант упростить себе жизнь.
py.user.next
lobster
Имеет ли библиотека встроеные механизмы переподключения при разрыве соединения
Разорви соединение и посмотри, что происходит. Если порождается исключение, то просто его ловишь и реагируешь.

Как разорвать соединение: нужно построить свой туннель между программой и MySQL-сервером, а потом его закрыть во время соединения.
Есть такая программа netcat, которая может выступать как в роли сервера, так и в роли клиента (это типа cat (программы-фильтра), только не для файлов, а для сети).
То есть можно запустить два экземпляра netcat, соединив их по каналу: один экземпляр принимает подключение от программы на питоне, другой - подключается к MySQL серверу в качестве клиента. Таким образом данные будут проходить из программы в сервер через цепочку netcat'ов.

А почему бы просто не выключить сервер без всяких цепочек? А потому что при выключении сервера, он может послать красивый сигнал всем клиентам (правильно закрыть соединение), тогда как закрытие туннеля - это именно дикое событие, которые и случаются в реальном мире, и программа должна правильно на него реагировать.
4kpt_III
py.user.next
Вообще-то это не я сказал
lobster
4kpt_III,
сейчас как раз разбираюсь с апи sqlalchemy, там есть пул, круто, Спасибо!
py.user.next,
Надо будет попробовать этот способ. А если два компа в локалке на одном mysql на другом программа, затем физически отрубить сеть, такой способ тоже прокатит в плане некорректного разрыва? У моего знакомого есть Стивенс TCP/IP в бумажном варианте, надо будет взять почитать, прокачать так сказать скилл :)
py.user.next
lobster
затем физически отрубить сеть, такой способ тоже прокатит в плане некорректного разрыва?
Да. Там можно и сервер вырубить. Просто этот способ - общий для всех таких задач. Не всегда можно вырубить сеть (что-то важное работает), как и не всегда можно вырубить сервер (какие-нибудь глюки в базах могут появиться).

4kpt_III
Вообще-то это не я сказал
Ну да, выделил в одном сообщении, а цитату нажал из другого.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB