ThreadingTCPServer und parallel etwas ausführen
Verfasst: Donnerstag 25. Juni 2009, 10:59
Hallo zusammen,
was die Netzwerkprogrammierung mit Python betrifft bin ich noch neu, deswegen spiele ich seit längerem mit einem kleinen Server.
Ich habe jetzt einen Server geschrieben, der die Daten, die er von einem Client erhält an eine Liste anfügt. Also nichts weltbewegendes, quasi nur die handle-Methode vom BaseRequestHandler überschrieben. Momentan bin ich dabei das ganze via locking auch für mehrere Clients "abzusichern".
So, genug der Vorgeschichte, der Grund meiner Frage ist folgender:
Ich möchte, das der Server ganz normal Daten von den Clients annimmt und an die Liste anhängt aber parallel dazu Daten aus der Liste wieder abruft und damit etwas macht (natürlich nur wenn Daten vorhanden sind).
Quasi hängen Clients auf der einen Seite der Liste an, während der Server auf der anderen Seite der Liste die Daten wieder abrufen soll.
Jetzt fehlt mir leider der Ansatzpunkt, denn wenn der Server mit "serve_forever()" gestartet ist, kann er ja nichts weiteres ausführen.
An welcher Stelle sollte ich den Code einfügen, der die Liste parallel zum anfügen abarbeitet? Einfach in die handle-Methode?
Ich bin für Denkanstöße sehr dankbar. Ich habe mir jetzt auch noch das Buch "Foundations of Python Network Programming" geordert, vielleicht kann mir das auch weiterhelfen.
Freundliche Grüße
was die Netzwerkprogrammierung mit Python betrifft bin ich noch neu, deswegen spiele ich seit längerem mit einem kleinen Server.
Ich habe jetzt einen Server geschrieben, der die Daten, die er von einem Client erhält an eine Liste anfügt. Also nichts weltbewegendes, quasi nur die handle-Methode vom BaseRequestHandler überschrieben. Momentan bin ich dabei das ganze via locking auch für mehrere Clients "abzusichern".
So, genug der Vorgeschichte, der Grund meiner Frage ist folgender:
Ich möchte, das der Server ganz normal Daten von den Clients annimmt und an die Liste anhängt aber parallel dazu Daten aus der Liste wieder abruft und damit etwas macht (natürlich nur wenn Daten vorhanden sind).
Quasi hängen Clients auf der einen Seite der Liste an, während der Server auf der anderen Seite der Liste die Daten wieder abrufen soll.
Jetzt fehlt mir leider der Ansatzpunkt, denn wenn der Server mit "serve_forever()" gestartet ist, kann er ja nichts weiteres ausführen.
An welcher Stelle sollte ich den Code einfügen, der die Liste parallel zum anfügen abarbeitet? Einfach in die handle-Methode?
Ich bin für Denkanstöße sehr dankbar. Ich habe mir jetzt auch noch das Buch "Foundations of Python Network Programming" geordert, vielleicht kann mir das auch weiterhelfen.
Freundliche Grüße