Не съм сигурен дали това е възможно, но търся начин да се свържа отново с базата данни mysql, когато връзката се загуби. Всички връзки се държат в gevent опашка, но това не би трябвало да има значение според мен. Сигурен съм, че ако отделя малко време, мога да измисля начин да се свържа отново с базата данни. Въпреки това погледнах кода на pymysql и видях, че има метод "ping" в класа на връзката, който не съм сигурен как точно да използвам.
Методът изглежда, че ще се свърже отново за първи път, но след това отново превключи флага за повторно свързване на False? Мога ли да използвам този метод или има друг начин за установяване на връзка, ако тя се загуби? Дори и да не е pymysql, как хората се справят със спирането на сървърите на бази данни и трябва да възстановят връзката с mysql сървъра?
def ping(self, reconnect=True):
''' Check if the server is alive '''
if self.socket is None:
if reconnect:
self._connect()
reconnect = False
else:
raise Error("Already closed")
try:
self._execute_command(COM_PING, "")
return self._read_ok_packet()
except Exception:
if reconnect:
self._connect()
return self.ping(False)
else:
raise