Уведомления

Группа в Telegram: @pythonsu

#1 Авг. 11, 2015 16:08:48

lobster
От:
Зарегистрирован: 2011-06-09
Сообщения: 82
Репутация: +  0  -
Профиль   Отправить e-mail  

MySQLdb реконнект при разрыве

Всем привет!
Вобщем вопрос в сабже. Имеет ли библиотека встроеные механизмы переподключения при разрыве соединения, или нужно самому додумывать. Целесообразнее наверное, лучше юзать какой нибудь менеджер пула соединений, но у меня простой скрипт для административных задач, просто хочу убедится чтобы в дальнейшем не было неожиданностей.



Офлайн

#2 Авг. 12, 2015 00:06:41

4kpt_III
Зарегистрирован: 2014-12-22
Сообщения: 999
Репутация: +  39  -
Профиль   Отправить e-mail  

MySQLdb реконнект при разрыве

Используем алхимию и не парим себе и народу мозг. Самый лучший и пока самый действенный вариант упростить себе жизнь.

Офлайн

#3 Авг. 12, 2015 03:58:46

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9754
Репутация: +  843  -
Профиль   Отправить e-mail  

MySQLdb реконнект при разрыве

lobster
Имеет ли библиотека встроеные механизмы переподключения при разрыве соединения
Разорви соединение и посмотри, что происходит. Если порождается исключение, то просто его ловишь и реагируешь.

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

А почему бы просто не выключить сервер без всяких цепочек? А потому что при выключении сервера, он может послать красивый сигнал всем клиентам (правильно закрыть соединение), тогда как закрытие туннеля - это именно дикое событие, которые и случаются в реальном мире, и программа должна правильно на него реагировать.



Отредактировано py.user.next (Авг. 12, 2015 14:48:08)

Офлайн

#4 Авг. 12, 2015 04:33:08

4kpt_III
Зарегистрирован: 2014-12-22
Сообщения: 999
Репутация: +  39  -
Профиль   Отправить e-mail  

MySQLdb реконнект при разрыве

py.user.next
Вообще-то это не я сказал

Офлайн

#5 Авг. 12, 2015 09:58:32

lobster
От:
Зарегистрирован: 2011-06-09
Сообщения: 82
Репутация: +  0  -
Профиль   Отправить e-mail  

MySQLdb реконнект при разрыве

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



Офлайн

#6 Авг. 12, 2015 14:50:35

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9754
Репутация: +  843  -
Профиль   Отправить e-mail  

MySQLdb реконнект при разрыве

lobster
затем физически отрубить сеть, такой способ тоже прокатит в плане некорректного разрыва?
Да. Там можно и сервер вырубить. Просто этот способ - общий для всех таких задач. Не всегда можно вырубить сеть (что-то важное работает), как и не всегда можно вырубить сервер (какие-нибудь глюки в базах могут появиться).

4kpt_III
Вообще-то это не я сказал
Ну да, выделил в одном сообщении, а цитату нажал из другого.



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version