On Sat, Jul 15, 2006 at 12:17:06PM +0200, Tobias Koenig wrote:
On Sat, Jul 15, 2006 at 12:22:48AM +0200, Frank Benkstein wrote: In dem Fall muss man wirklich überlegen wie sich das Programm beim Abarbeiten großer Datenmangen verhalten soll. Ein Weg wäre den Bottom-Half Ansatz des Linux-Kernels bei Interrupts zu verwenden, der Callback macht nur das wirklich Notwendige (z.B. Sichern der einkommenden Daten in einen Buffer), registriert eine Methode die irgendwann später ausgeführt wird zum Bearbeiten der Daten, und kehrt dann sofort in die Mainloop zurück.
Der sauberere Weg IMHO würden aber Worker-Threads bzw. Worker-Forks sein. Bietet Python eine Möglichkeit an Socket-Descriptoren an einen anderen Prozess weiterzugeben?
Hallo,
so weit ich weiß gibt es in der Standardbibliothek noch nicht diese Möglichkeit. Aber es ist möglich. Man muss vermutlich wenige Zeilen C-Code übersetzen.
Um zu wissen ob unser Archiv[1] auch skaliert, habe ich mal SCGI ausprobiert, dass genau mit diesem Prinzip arbeitet. Es ist verdammt schnell. Derzeit reicht die Performance mit einfachen CGI, was es etwas einfacher macht neuen Quelltext einzuspielen (Es muss kein Server neu gestartet werden, einfach Quelltext kopieren).
Gruß, Thomas
[1] MODARCH: http://www.tbz-pariv.de/modarch/index.html