.
m2wsgi bir Python Mongrel2 haqqında Python apps asan yerləşdirilməsi imkan Mongrel2 web server üçün wsgi Gateway handler təmin modulu & nbsp edir Siz həmçinin Python qeyri-wsgi işleyicileri inkişaf üçün faydalı onun dəstək dərsləri tapa bilərsiniz.
Command-line istifadə
Bu paketi istifadə etmək üçün sadə yolu bir skript satırı başlatma kimi:
python-m m2wsgi dotted.app.name TCP: //127.0.0.1: 9999
Bu müəyyən tələb port Mongrel2 qoşulmaq və müəyyən wsgi app vasitəsilə keçərək sorğu baxılması başlayacaq. Mənim cari olaraq bütün sorğuların baxılması bir işçi mövzu əldə edəcək; belə ki, kimi mövzuları sayını artırmaq:
python-m m2wsgi --num-mövzuları = 5 dotted.app.name TCP: //127.0.0.1: 9999
Mövzuları şey deyil ya, belə ki, kimi ətrafında bit shuffle eventlet istifadə edin:
python-m m2wsgi --io = eventlet dotted.app.name TCP: //127.0.0.1: 9999
Mən belə gevent digər IO modulları üçün dəstək əlavə maraqlı deyiləm; fəaliyyətləri salamlayıram.
Proqramatik istifadə
Daha çox mürəkkəb ehtiyacları varsa, siz proqram çərçivəsində m2wsgi istifadə edə bilərsiniz. ana sinifi sadə server interfeysi təmin edir "WSGIHandler" deməkdir. Yuxarıda command-line istifadə bərabərdir:
m2wsgi.base idxal WSGIHandler dən
handler = WSGIHandler (my_wsgi_app, "TCP: //127.0.0.1: 9999")
handler.serve ()
Sizin handler və Mongrel2 arasında bağlantısı finer nəzarət üçün öz Connection obyekt yaratmaq:
m2wsgi.base idxal WSGIHandler, Connection dən
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")
handler = WSGIHandler (my_wsgi_app, Pak)
handler.serve ()
Biz artıq bu bir yoxdur
Həqiqətən bir neçə:
& Nbsp; * https://github.com/berry/Mongrel2-WSGI-Handler
& Nbsp; * https://bitbucket.org/dholth/mongrel2_wsgi
Onların heç biri tam mənim ehtiyaclarını qarşıladı. Xüsusilə, bu paketi üçün şəffaf dəstək var:
& Nbsp; * öbekli cavab encoding
& Nbsp; böyük tələb orqanlarının * "async upload"
& Nbsp; * pluggable IO backends (məsələn, eventlet, gevent)
O, həmçinin Mongrel2 üçün xüsusi yer qədər nəzərdə tutulmuşdur. Bu pulsuz funksionallıq bir çox olur deməkdir və kodu nəticəsində sadə və yüngül.
Məsələn, siz məsələn tapa bilərsiniz bir threadpool və sorğu növbə aydın idarə var CherryPy server. Bunun əvəzinə, yalnız avtomatik olaraq onlara sorğu yük-balans olacaq mongrel2 (zmq vasitəsilə) onlara eyni handler yuva qoşulmaq var və lazım kimi bir çox mövzuları başlamaq.
Eynilə kod dəyişir zaman yeniden üçün heç bir aydın dəstək var. Yalnız köhnə handler öldürmək və yeni bir başlamaq. Siz sabit handler UUIDs istifadə edirsinizsə, onda zmq təhvil qəşəng olur ki, təmin edəcək
tələblər .
- Python
məhdudiyyətlər
- çox mövzuları çalışan zaman, ctrl-C cleanly prosesi çıxmaq deyil. Background mövzuları () bir blok recv takılıyorum kimi görünür.
- zmq yük balans alqoritm ideal deyil görməmiş dəyirmi robin edir. Məsələn, digər mövzuları mövcud olmaq, hətta onları gözləmək edilməsi, yavaş eyni mövzu üçün bir neçə sürətli sorğu cədvəli bilər. Daha yaxşı bir şey edə bilərsiniz bir zmq adapter üzərində çalışıram.
Şərhlər tapılmadı