m2wsgi

Sagteware kiekie:
m2wsgi
Sagteware besonderhede:
Weergawe: 0.5.2
Upload datum: 15 Apr 15
Ontwikkelaar: Ryan Kelly
Lisensie: Gratis
Populariteit: 8

Rating: nan/5 (Total Votes: 0)

m2wsgi is 'n Python module wat 'n WSGI poort hanteerder vir die Mongrel2 web bediener, wat maklike ontplooiing van Python apps op Mongrel2 & nbsp;. Jy kan ook vind sy ondersteunende klasse nuttig vir die ontwikkeling van nie-WSGI hanteerders in Python.

Opdrag-lyn gebruik

Die eenvoudigste manier om hierdie pakket te gebruik, is as 'n opdrag-lyn lanseerder:
python -M m2wsgi dotted.app.name tcp: //127.0.0.1: 9999
Dit sal konnekteer na Mongrel2 op die gespesifiseerde versoek hawe en begin om versoeke deur verby hulle deur die gespesifiseerde WSGI app. By verstek, sal jy 'n enkele werker draad hantering van alle versoeke kry; verhoging van die aantal drade soos so:
python -M m2wsgi --num-drade = 5 dotted.app.name tcp: //127.0.0.1: 9999
Of as drade is nie jou ding is, gebruik eventlet die stukkies te rondskuif soos so:
python -M m2wsgi --io = eventlet dotted.app.name tcp: //127.0.0.1: 9999
Ek is geïnteresseerd in ondersteuning vir ander IO modules soos gevent voeg; bydraes welkom.
Programmatiese Gebruik
As jy meer ingewikkelde behoeftes, kan jy gebruik m2wsgi van binne jou aansoek. Die belangrikste klas is 'WSGIHandler' wat bied 'n eenvoudige koppelvlak bediener. Die ekwivalent van die bogenoemde opdrag-lyn gebruik is:
van m2wsgi.base invoer WSGIHandler
hanteerder = WSGIHandler (my_wsgi_app, "tcp: //127.0.0.1: 9999")
handler.serve ()
Vir fyner beheer oor die verband tussen jou hanteerder en Mongrel2, skep jou eie Connection voorwerp:
van m2wsgi.base invoer WSGIHandler, Connection
conn = Connection (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")
hanteerder = WSGIHandler (my_wsgi_app, conn)
handler.serve ()
Moenie ons reeds een van hierdie nie?
Verskeie eintlik:
& Nbsp; * https://github.com/berry/Mongrel2-WSGI-Handler
& Nbsp; * https://bitbucket.org/dholth/mongrel2_wsgi
Nie een van hulle ten volle met my behoeftes. In die besonder, hierdie pakket het 'n deursigtige ondersteuning vir:
& Nbsp; * chunked reaksie encoding
& Nbsp; * "async oplaai" van die groot aanvraag liggame
& Nbsp; * plug IO back ends (bv eventlet, gevent)
Dit is ook ontwerp van die grond af spesifiek vir Mongrel2. Dit beteken dat dit kry 'n baie van die funksies vir gratis, en die kode is eenvoudiger en ligter as 'n resultaat.
Byvoorbeeld, daar is geen eksplisiete bestuur van 'n threadpool en versoek ry as wat jy kan vind in bv die CherryPy bediener. In plaas daarvan, het jy net begin as die klomp drade as jy nodig het, het hulle almal verbind tot dieselfde hanteerder socket, en mongrel2 (via zmq) sal outomaties laai-balans van die versoeke aan hulle.
Net so, is daar geen eksplisiete ondersteuning vir herlaai toe die kode verander. Net die dood van die ou hanteerder en begin 'n nuwe een. As jy met behulp van vaste hanteerder UUIDs dan zmq sal verseker dat die oorhandiging gebeur grasieus

Vereistes :.

  • Python

Beperkings :

  • Wanneer die loop van verskeie drade, beteken Ctrl-C nie skoon die uitgang van die proses. Lyk soos die agtergrond drade vassit in 'n blok Recv ().
  • Die load-balansering algoritme zmq onregverdige rondomtaliegrondslag, wat nie ideaal is nie. Byvoorbeeld, kan dit skeduleer verskeie vinnige versoeke aan die dieselfde draad as 'n stadige een, maak hulle wag, selfs as die ander drade beskikbaar raak. Ek werk op 'n zmq adapter dat iets beter kan doen.

Ander sagteware ontwikkelaar Ryan Kelly

dexml
dexml

5 Jun 15

promise
promise

28 Feb 15

Kommentaar te m2wsgi

Kommentaar nie gevind
Kommentaar te lewer
Draai op die foto!