m2wsgi

Software screenshot:
m2wsgi
Software informatie:
Versie: 0.5.2
Upload datum: 15 Apr 15
Ontwikkelaar: Ryan Kelly
Licentie: Gratis
Populariteit: 8

Rating: nan/5 (Total Votes: 0)

m2wsgi is een Python module die een WSGI gateway handler voor de Mongrel2 webserver, waardoor eenvoudige implementatie van Python apps op Mongrel2 & nbsp;. Het is misschien ook de ondersteunende lessen nuttig zijn voor het ontwikkelen van niet-WSGI handlers in Python.

Command-line gebruik

De eenvoudigste manier om dit pakket te gebruiken is als een command-line launcher:
python -m m2wsgi dotted.app.name tcp: //127.0.0.1: 9999
Dit zal verbinden met Mongrel2 op de opgegeven verzoek poort en start de behandeling van verzoeken door ze door de opgegeven WSGI app. Standaard krijgt u een enkele draad werknemer de behandeling van alle aanvragen te krijgen; verhoging van het aantal draden als volgt:
python -m m2wsgi --num-draden = 5 dotted.app.name tcp: //127.0.0.1: 9999
Of als draden zijn niet uw ding, gebruiken eventlet om de bits rond shuffle als volgt:
python -m m2wsgi --io = eventlet dotted.app.name tcp: //127.0.0.1: 9999
Ik ben geïnteresseerd in het toevoegen van ondersteuning voor andere IO modules zoals gevent; bijdragen te verwelkomen.
Programmatische Gebruik
Als u meer ingewikkelde behoeften, kunt u m2wsgi gebruiken vanuit uw toepassing. De belangrijkste les is 'WSGIHandler', die een eenvoudige server-interface biedt. Het equivalent van de bovenstaande command-line gebruik is:
van m2wsgi.base import WSGIHandler
handler = WSGIHandler (my_wsgi_app, "tcp: //127.0.0.1: 9999")
handler.serve ()
Voor een betere controle over de verbinding tussen uw handler en Mongrel2, creëer je eigen Connection object:
van m2wsgi.base import WSGIHandler, Verbinding
conn = Verbinding (send_spec = "tcp: //127.0.0.1: 9999",
& Nbsp; recv_spec = "tcp: //127.0.0.1: 9999",
& Nbsp; send_ident = "9a5eee79-dbd5-4f33-8fd0-69b304c6035a")
handler = WSGIHandler (my_wsgi_app, Conn)
handler.serve ()
Hebben we niet al een van deze?
Verschillende eigenlijk:
& Nbsp; * https://github.com/berry/Mongrel2-WSGI-Handler
& Nbsp; * https://bitbucket.org/dholth/mongrel2_wsgi
Geen van hen voldeed volledig aan mijn behoeften. In het bijzonder, dit pakket heeft transparante ondersteuning voor:
& Nbsp; * chunked reactie encoding
& Nbsp; * "async uploaden" van de grote aanvraag lichamen
& Nbsp; * pluggable IO backends (bijv eventlet, gevent)
Het is ook ontworpen vanaf de grond opgebouwd specifiek voor Mongrel2. Dit betekent dat het krijgt veel functionaliteit voor gratis, en de code is eenvoudiger en lichter als gevolg.
Zo is er geen expliciete beheer van een ThreadPool en verzoek wachtrij als je zou vinden in bv de cherrypy server. In plaats daarvan, je gewoon opstarten zo veel threads als je nodig hebt, hebben ze allemaal aan te sluiten op dezelfde handler socket, en mongrel2 (via ZMQ) automatisch laden-balans van de verzoeken aan hen.
Ook is er geen expliciete steun voor het herladen wanneer de code verandert. Gewoon dood de oude handler en het opstarten van een nieuwe. Als u gebruik maakt vaste handler UUIDs dan zal ZMQ ervoor te zorgen dat de overdracht gebeurt sierlijk

Eisen .

  • Python

Beperkingen

  • Bij het uitvoeren van meerdere threads, ctrl-C niet netjes het proces af te sluiten. Het lijkt erop dat de achtergrond discussies komen te zitten in een blokkerende recv ().
  • De ZMQ load-balancing algoritme is hebzuchtig round-robin, wat niet ideaal is. Bijvoorbeeld kan het schema verschillende fast verzoeken dezelfde draad als een langzame, waardoor ze wachten zelfs als andere threads beschikbaar. Ik ben bezig met een ZMQ adapter die iets beter kunnen doen.

Andere software van ontwikkelaar Ryan Kelly

PyPy.js
PyPy.js

4 Jun 15

Threading2
Threading2

28 Feb 15

withrestart
withrestart

28 Feb 15

Reacties op m2wsgi

Reacties niet gevonden
Commentaar toe te voegen
Zet op de beelden!