ich baue gerade einen Web-Service mit Hilfe des Apache-Mods mod_python auf. Aus Sicherheitsgründen werden immer nur eine gewisse Anzahl von Anfragen gleichzeitig bearbeitet werden. Sollten mehr Anfragen gestellt werden, müssen diese warten.
Nachdem wieder ein Worker-Thread frei geworden ist rückt die nächste Anfrage nach. Nun kann es aber sein, dass der Client bereits gar nicht mehr online ist. Um das heraus zu finde hatte ich bis jetzt immer folgende Funktion aufgerufen.
Code: Alles auswählen
def connectionTest(req):
try:
req.write(" ")
except IOError, e:
#Schreinen ist fehlgeschlagen --> Verbindung getrennt
return False
#Schreiben war erfolgreich --> Verbindung OK
return True
Jetzt könne ich zwischen zwei Schreibversuchen die Timeout-Zeit warten, allerdings würde das im "normalen" Betrieb zu unnötigen Wartezeiten führen.
Also benötige ich eine andere Methode, um den Online Status des Clients zu prüfen. Überlegt hatte ich mir schon , dass ich auf das HTTP ACK des Clients auf die aktuelle Sequenz abwarte bzw. die Acknoledgement Number polle. Allerdings hab ich hierzu noch nicht herausgefunden, ob und wenn wie ich an diese Daten komme.
Hat da jemand eine Idee oder alternative Vorschläge die Verbindung zu testen?