m2wsgi

Software skärmdump:
m2wsgi
Mjukvaruinformation:
Version: 0.5.2
Ladda upp dagen: 15 Apr 15
Utvecklare: Ryan Kelly
Licens: Gratis
Popularitet: 8

Rating: nan/5 (Total Votes: 0)

m2wsgi är en Python-modul som ger en WSGI gateway hanterare för Mongrel2 webbserver, vilket möjliggör enkel distribution av Python apps på Mongrel2. & Nbsp; Du kan också hitta dess stödklasser användbart för att utveckla icke-WSGI hanterare i Python.

Command-line-användning

Det enklaste sättet att använda detta paket är som ett kommandoradsgränssnitt launcher:
Python -m m2wsgi dotted.app.name tcp: //127.0.0.1: 9999
Detta kommer att ansluta till Mongrel2 på angiven begäran porten och börja hantera förfrågningar genom att passera dem genom den angivna WSGI app. Som standard får du en enda arbetare tråd hantera alla förfrågningar; öka antalet trådar som så:
python -m m2wsgi --num-trådar = 5 dotted.app.name tcp: //127.0.0.1: 9999
Eller om trådar är inte din sak, använd eventlet att blanda bitarna runt som så:
Python -m m2wsgi --io = eventlet dotted.app.name tcp: //127.0.0.1: 9999
Jag är intresserad av att lägga till stöd för andra IO-moduler såsom gevent; bidrag välkomna.
Program Användning
Om du har mer komplicerade behov, kan du använda m2wsgi inifrån din ansökan. Den största klassen är "WSGIHandler" som ger en enkel server gränssnitt. Motsvarigheten till ovanstående kommando-line-användning är:
från m2wsgi.base import WSGIHandler
handler = WSGIHandler (my_wsgi_app, "tcp: //127.0.0.1: 9999")
handler.serve ()
För finare kontroll över anslutningen mellan föraren och Mongrel2, skapa din egen Connection-objekt:
från m2wsgi.base import WSGIHandler, Koppling
conn = Anslutning (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 ()
Inte vi redan har en av dessa?
Flera faktiskt:
& Nbsp; * https://github.com/berry/Mongrel2-WSGI-Handler
& Nbsp; * https://bitbucket.org/dholth/mongrel2_wsgi
Ingen av dem träffade helt mina behov. I synnerhet har detta paket transparent stöd för:
& Nbsp; * chunked svar kodning
& Nbsp; * "async uppladdning" av stora begäran organ
& Nbsp; * jack IO backends (t.ex. eventlet, gevent)
Den är också utformad från grunden specifikt för Mongrel2. Detta innebär att det blir en hel del funktionalitet för gratis, och koden är enklare och lättare som följd.
Till exempel finns det ingen uttrycklig förvalta ett threadpool och begära kö som du kan hitta i t.ex. den cherrypy servern. Istället du bara starta så många trådar som du behöver, har dem alla ansluter till samma handler uttaget, och mongrel2 (via zmq) laddas automatiskt balansera önskemålen till dem.
På samma sätt finns det ingen uttryckligt stöd för omladdning när koden ändras. Bara döda den gamla handler och starta en ny. Om du använder fast handler UUID sedan zmq kommer att säkerställa att överlämnandet sker graciöst

Krav :.

  • Python

Begränsningar :

  • När du kör flera trådar, inte ctrl-C inte rent avsluta processen. Verkar som bakgrunds trådarna fastnar i en blockerings recv ().
  • zmq lastbalansering algoritm är giriga round-robin, som inte är perfekt. Till exempel kan det schema flera snabba förfrågningar till samma tråd som en långsam, vilket gör dem vänta, även om andra trådar blir tillgängliga. Jag jobbar på en zmq adapter som kan göra något bättre.

Annan programvara för utvecklare Ryan Kelly

promise
promise

28 Feb 15

filelike
filelike

28 Feb 15

Threading2
Threading2

28 Feb 15

PyEnchant
PyEnchant

28 Feb 15

Kommentarer till m2wsgi

Kommentarer hittades inte
Kommentar
Slå på bilder!