m2wsgi

צילום מסך תוכנה:
m2wsgi
פרטי תוכנה:
גרסה: 0.5.2
טען תאריך: 15 Apr 15
מפתחים: Ryan Kelly
רשיון: ללא תשלום
פופולריות: 8

Rating: nan/5 (Total Votes: 0)

m2wsgi הוא מודול פייתון המספק מטפל שער WSGI לשרת האינטרנט Mongrel2, המאפשר פריסה קלה של יישומי פייתון על Mongrel2 & nbsp;. אתה יכול גם למצוא שיעורי התמיכה שלה שימושי לפיתוח מפעילים שאינם WSGI בפייתון.

שימוש בשורת הפקודה

הדרך הפשוטה ביותר להשתמש בחבילה זו היא כמשגר שורת הפקודה:
פיתון -m m2wsgi dotted.app.name TCP: //127.0.0.1: 9999
זה יהיה להתחבר לMongrel2 ביציאת הבקשה שצוינה ולהתחיל טיפול בבקשות על ידי העברתם דרך האפליקציה WSGI שצוינה. כברירת מחדל אתה תקבל חוט עובד אחד מטפל בכל הבקשות; להגדיל את מספר נושאים כמו כך:
פיתון -m m2wsgi --num-אשכולות = TCP 5 dotted.app.name: //127.0.0.1: 9999
או אם נושאים שהם לא הדבר שלך, להשתמש eventlet דשדוש החתיכות סביב כך:
פיתון -m m2wsgi --io = eventlet dotted.app.name TCP: //127.0.0.1: 9999
אני מתעניין בהוספת תמיכה במודולים IO אחרים כגון gevent; תרומות תתקבלנה בברכה.
שימוש פרוגרמטי
אם יש לך צרכי מורכבים יותר, אתה יכול להשתמש m2wsgi מתוך היישום שלך. המעמד המרכזי הוא 'WSGIHandler' המספק ממשק שרת פשוט. שווה הערך של השימוש בשורת הפקודה הנ"ל הוא:
מWSGIHandler יבוא m2wsgi.base
מטפל = WSGIHandler (my_wsgi_app, "TCP: //127.0.0.1: 9999")
handler.serve ()
לשליטה עדינה יותר על הקשר בין המטפל וMongrel2 שלך, ליצור אובייקט החיבור שלך:
מWSGIHandler יבוא m2wsgi.base, חיבור
conn = חיבור "TCP: //127.0.0.1: 9999" (= send_spec,
& Nbsp; recv_spec "TCP: //127.0.0.1: 9999" =,
& Nbsp; send_ident = "9a5eee79-dbd5-4f33-8fd0-69b304c6035a")
מטפל = WSGIHandler (my_wsgi_app, קונטיקט)
handler.serve ()
כבר אין לנו אחד כזה?
כמה באמת:
& Nbsp; * https://github.com/berry/Mongrel2-WSGI-Handler
& Nbsp; * https://bitbucket.org/dholth/mongrel2_wsgi
אף אחד מהם פגש באופן מלא לצרכים שלי. בפרט, יש חבילה זו תמיכה שקופה:
& Nbsp; * קידוד תגובה מחולקת
& Nbsp; * "העלאת סינכרוני" של גופי בקשה גדולים
& Nbsp; * מסדי IO לחיבור (לדוגמא eventlet, gevent)
זה גם תוכנן מהיסוד במיוחד לMongrel2. משמעות דבר היא שהוא מקבל הרבה פונקציונלי בחינם, והקוד הוא קל ופשוט יותר כתוצאה מכך.
לדוגמא, אין ניהול מפורש של תור threadpool והבקשה כפי שאתה עלול למצוא בדוגמה שרת Cherrypy. במקום זאת, אתה פשוט להתחיל את אשכולות רבים ככל שאתה צריך, יש להם את כל להתחבר לאותו שקע המטפל, וmongrel2 (דרך zmq) תטען אוטומטית-לאזן את בקשותיהם.
באופן דומה, אין תמיכה מפורשת בטעינה מחדש כאשר הקוד משתנה. פשוט להרוג את המטפל הישן ולהתחיל אחד חדש. אם אתה משתמש בUUIDs מטפל קבוע אז zmq יבטיח כי המסירה קורה בחינניות

דרישות :.

    • Python

    מגבלות :

    • בעת הפעלת מספר רב של נושאים, ctrl-C אינו נקי לצאת מהתהליך. נראה כמו אשכולות הרקע להיתקע בrecv חסימה ().
    • אלגוריתם איזון עומסי zmq הוא סיבובים חמדניים, אשר אינו אידיאלית. לדוגמא, הוא יכול לתזמן כמה בקשות במהירות לאותו חוט כאחד איטי, מה שהופך אותם לחכות גם אם נושאים אחרים הופכים לזמינים. אני עובד על מתאם zmq שיכול לעשות משהו טוב יותר.

  • תוכנות אחרות של יזם Ryan Kelly

    תגובות ל m2wsgi

    תגובות לא נמצא
    להוסיף הערה
    הפעל את התמונות!