m2wsgi.

A MONGREL2 => WSGI-Gateway
Jetzt downloaden

m2wsgi. Ranking & Zusammenfassung

Anzeige

  • Rating:
  • Lizenz:
  • MIT/X Consortium Lic...
  • Name des Herausgebers:
  • Ryan Kelly
  • Website des Verlags:

m2wsgi. Stichworte


m2wsgi. Beschreibung

Ein mongrel2 => wsgi-gateway M2WSGI ist ein Python-Modul, das einen WSGI-Gateway-Handler für den MONGREL2-Webserver bereitstellt, der einen einfachen Einsatz von Python-Apps auf MONGREL2 ermöglicht. Möglicherweise finden Sie auch seine unterstützenden Klassen, die für die Entwicklung von Non-WSGI-Handlern in python.command-line-usagethe einfachste Weise, um dieses Paket zu entwickeln 0,1: 9999Die verbindet sich mit MONGREL2 auf dem angegebenen Anforderungsport und starten Sie die Handhabungsanfragen, indem Sie sie über die angegebene WSGI-App übergeben. Standardmäßig erhalten Sie einen einzelnen Arbeiterfaden, der alle Anforderungen behandelt. Erhöhen Sie die Anzahl der Fäden wie folgt : Python -m m2wsgi --io = Eventlet dotted.app.name TCP: //127.0.0.1: 9999i ist daran interessiert, Unterstützung für andere IO-Module wie GEVENT hinzuzufügen; Beiträge Willkommen Die Hauptklasse ist 'wsgiHandler', der eine einfache Serverschnittstelle bereitstellt. Das Äquivalent der obigen Befehlszeilennutzung lautet: von m2wsgi.base import wsgiHandlerHandler = wsgiHandler (my_wsgi_app, "tcp: //127.0.0.1: 9999") handler.sve () für feinere Steuerung über die Verbindung zwischen Ihrem Handler und MONGREL2 , erstellen Sie Ihr eigenes Verbindungsobjekt: von m2wsgi.base import wsgiHandler, connectionconn = connection (send_spec = "TCP: //127.0.0.1: 9999", RECV_SPEC = "TCP: //127.0.0.1: 9999", Send_Ident = "9A5EEE79 -DBD5-4F33-8FD0-69B304C6035A ") Handler = WSGIHANDLER (MY_WSGI_APP, CONN) Handler.Serve () Haben wir nicht bereits eines davon? Mehrere eigentlich: * https://github.com/berry/mongrel2-wsgi -Handler * https://bitbucket.org/dholth/mongrel2_wsginone von ihnen erfüllte meine Bedürfnisse vollständig. Insbesondere hat dieses Paket eine transparente Unterstützung für: * Chunked Response-Codierung * "Async-Upload" von großen Anforderungskörpern * steckbarer IO-Backends (z. B. Eventlet, GEVENT), es ist auch aus dem Boden speziell für MONGREL2 ausgelegt. Dies bedeutet, dass es eine Menge Funktionalität kostenlos erhält, und der Code ist als Ergebnis einfacher und leichter. Zum Beispiel gibt es keine explizite Verwaltung eines Threadpools und der Anforderungswarteschlange, wie Sie möglicherweise in z.B. der CHERRYPY-Server. Stattdessen starten Sie einfach so viele Threads wie Sie, während Sie alle mit derselben Handler-Buchse herstellen lassen. MONGREL2 (über ZMQ) lädt die Anforderungen automatisch an. Änderungen. Töte einfach den alten Handler und starten Sie einen neuen. Wenn Sie Fixed-Handler-UUIDs verwenden, stellt ZMQ sicher, dass die Übergabe anmutig geschieht. Anforderungen: · Python Einschränkungen: · Wenn Sie mehrere Threads ausführen, beenden Strg-C den Prozess nicht sauber. Es scheint, als würden die Hintergrundfäden in einem Blocking RECV () stecken. · Der ZMQ-Lastausgleichsalgorithmus ist gierig Rund-Robin, der nicht ideal ist. Beispielsweise kann es beispielsweise mehrere schnelle Anforderungen an denselben Thread als langsamer planen, wodurch sie warten, selbst wenn andere Threads verfügbar sind. Ich arbeite an einem ZMQ-Adapter, der etwas Besseres tun kann.


m2wsgi. Zugehörige Software