Python3 MySQL kapcsolat állapota (folyamatos)

 ( makgab | 2018. december 9., vasárnap - 13:41 )

Üdv!
Van egy python3 progi, ami helyi adatokat küld fel openvpn (wifi) kapcsolaton keresztül egy MySQL szerverhez.
Mivel a wifi nem egészen stabil, ezért előfordul, hogy megszakad a kapcsolat. Ilyenkor a script kivétel miatt elszáll és kilép.
A kivételt most kezelem, de csak az a kérdés, hogyan érdemes? A script ilyesmi:

#!/usr/bin/python3

import MySQLdb as sql
import time

print("Starting...")

while True:
try:
# helyi adatok gyűjtése itt...
#
# conncetion:
if ( ... ) # <---------------------------------- itt kellene vizsgálni, hogy él-e a kapcsolat!!!!!
mydb = sql.connect( ... )

# SQL
mycursor = mydb.cursor()
mycursor.execute("INSERT INTO ...")
mycursor.commit()

except (Exception) as e:
print("Error in progress:")
print(e)

finally:
print("End.")
time.sleep( 1 )
# end while ---------------------------------

A mydb változó csak akkor jön létre, ha létrejön a kapcsolat. Mivel tudom vizsgálni kivételkezeléskor, hogy él-e a kapcsolat?

Hozzászólás megjelenítési lehetőségek

A választott hozzászólás megjelenítési mód a „Beállítás” gombbal rögzíthető.

Próbáltam egy ilyet:

#!/usr/bin/python3

import MySQLdb as sql
import time

print("Starting...")

mydb = None

while True:
try:
# helyi adatok gyűjtése itt...
# conncetion:
if (mydb):
print("MySQL connection is OK.")
else:
print("MySQL connection has problem! Reconnect...")
mydb = sql.connect( ... )

# SQL
mycursor = mydb.cursor()
mycursor.execute("INSERT INTO ...")

except (Exception) as e:
print("Error in MySQL connection:")
print(e)

finally:
# print("End.")
time.sleep( 1 )
# end while

Elvileg működik, mert megszakadt kapcsolat után helyreállítottam a kapcsolatot és folytatta a futást. :)
Ez így jó (elegáns, szép) megoldás lehet?

a kerdes az hogyan szeretned kezelni a problemat?
ezt eloszor meg kellene tervezned.

addig probalkozni amig sikerul jol elkuldeni vagy hianyzo kapcsolat nelkul illetve kuldes kozbeni problemaknal kesobb majd ujra probalkozni esetleg ha gond van akkor csak kilepni es kesz.

Egyet értek az előttem szólóval.

Amit én gondolok problémának ahhoz jó irány lehet ez a link.

https://stackoverflow.com/questions/45800460/how-to-use-mysqldb-is-connected-to-check-an-active-mysql-connection-using-pyth

Valamilyen MQ megoldás nem tenné kezelhetőbbé a problémát?