13

Gibt es eine Möglichkeit, wie BaseHTTPServer.HTTPServer wie SocketServer.ThreadingTCPServer Multi-Threading sein?Python - BaseHTTPServer.HTTPServer Parallelität und Threading

+0

Gibt es einen Grund, warum Sie es brauchen? – jakebman

+3

Weil ich einen grundlegenden Web-Server möchte, der mit Nebenläufigkeit umgehen kann? Ich brauche auch kein Framework wie web.py, cherrypy oder ähnliches, ich möchte nur einen wirklich einfachen Webserver wie BaseHTTPServer, der mehrere gleichzeitige Anfragen verarbeiten kann. – Ian

+1

Hier ist eine Referenz: [link] (http://www.doughellmann.com/PyMOTW/BaseHTTPServer/index.html#module-BaseHTTPServer), threading, Forking – sfossen

Antwort

19

können Sie einfach das Einfädeln mixin verwenden diese beiden Klassen, um es Multithreading zu machen :)

Es wird aber nicht viel helfen Ihnen bei der Leistung, aber es ist atleast multithreaded.

from SocketServer import ThreadingMixIn 
from BaseHTTPServer import HTTPServer 

class MultiThreadedHTTPServer(ThreadingMixIn, HTTPServer): 
    pass 
+2

Das sieht aus wie * eine * Lösung .. aber ich würde eher entscheiden, meinen eigenen Server zu schreiben als etwas langsames zu verwenden .. :( – Ian

+0

Wenn Sie einfach nach Python Hosting suchen, dann warum nicht einen vorhandenen http Server wie nginx verwenden, apache oder lighttpd? Wie für die Leistung, threading es ermöglicht es Ihnen, mehrere gleichzeitige Verbindungen ohne zu blockieren, so dass im Falle von mehreren gleichzeitigen Anfragen wird es schneller sein. Aber es wird immer noch nur 1 Prozessor. – Wolph

+1

Ich bin nicht Ich suche einen Warteschlangenserver, der eingehende Anfragen entgegennimmt (http oder ein ähnliches Format) und eine Aktion basierend auf der Anfrage durchführt. – Ian