Ich schreibe einen Datei-Cache-Server, um Kopien von statischen Dateien für einen Webserver zu halten. Wenn ein Thread im Webserver eine statische Datei benötigt, öffnet er eine Socket-Verbindung zum Cache-Server und sendet ihm das Ergebnis socket.share()
+ den Namen der gewünschten Datei. Der Cache-Server verwendet das Ergebnis socket.share
, um über socket.fromshare
Zugriff auf den HTTP-Client zu erhalten, und sendet den Inhalt einer statischen Datei. Dann schließt es seine Kopie des HTTP-Client-Sockets und die Verbindung des Threads mit ihm.Kann ich ein Socket-Datei-Handle mit socket.fromshare wiederverwenden?
Ich frage mich, ob die Verwendung von socket.detach
anstelle von socket.close
automatisch die Leistung verbessert? Die Dokumentation für socket.detach
sagt das:
Setzen Sie das Socket-Objekt in geschlossenen Zustand, ohne den zugrunde liegenden Dateideskriptor tatsächlich zu schließen. Der Dateideskriptor wird zurückgegeben und kann für andere Zwecke wiederverwendet werden.
Muss ich ausdrücklich Deskriptoren die zurückgegebenen Datei irgendwie verwenden, wenn neue Buchsen durch den Cache-Server erstellt werden, oder hat das socket
Modul wissen, über wiederverwendbare Filedeskriptoren vorhanden?