Hallo blackbird!
blackbird hat geschrieben:MySQL zb öffnet gestorbene Verbindungen nicht automatisch neu.
Wenn so etwas öfter vor kommt, dann kann man ja etwas dagegen tun:
Code: Alles auswählen
#!/usr/bin/env python
# -*- coding: iso-8859-15 -*-
import psycopg2
import cherrypy
DSN = "dbname='postgres' user='irgendeiner' host='localhost' password='irgendeines'"
def get_conn():
try:
conn = cherrypy.thread_data.connection
# Connection testen
cur = conn.cursor()
cur.execute("SELECT CURRENT_TIMESTAMP")
cur.fetchone()
except (NameError, psycopg2.ProgrammingError):
conn = cherrypy.thread_data.connection = psycopg2.connect(DSN)
return conn
#...
Ich halte diesen Overhead für verschwindend gering. Deshalb hätte ich auch unter Server-Vollast kein Problem damit.
blackbird hat geschrieben:nicht zwei Verbindungen in einen Thread holen
``get_conn1()`` und ``get_conn2()``
Viel mehr, gleichzeitig offene, Verbindungen je Thread werde ich selten benötigen. Man kann es sicher andes lösen, aber sicher nicht einfacher.
blackbird hat geschrieben:eine Transaktion beenden lassen während der User schon seine Seite bekommen hat.
An so einen Fall kann ich mich jetzt nicht erinnern. -- Darüber habe ich noch nicht nachgedacht. Da müsste man wahrscheinlich irgendwie mit einer globalen Datenbankverbindung arbeiten, die dann die Jobs per Queue bekommt. So z.B.:
http://aspn.activestate.com/ASPN/Cookbo ... ipe/496799
lg
Gerold
