بالا آوردن یک اپ wsgi با سرور Tornado
در این قسمت یک اپ ویزگی رو روی سرور تورنادیی بالا میاریم.
یک جایی هم به جای werkzeug گفتم ویزگی که همین جا اصلاحش میکنم.
سورس کد مربوط به این قسمت در https://github.com/reganto/tornado-tutorial قرار دارد. اگر سوالی داشتید میتونید پایین همین تاپیک بپرسید اگر بلد باشم حتما جواب میدم.
بالا آوردن WSGI App
با یکی از فریمورکهای ویزگی مثل فلسک یک اپ ویزگی بالا میاریم. این اپ ویزگی خیلی ساده میاد و یک hello world برای ما به خروجی میبره
استفاده از سرور تورنادو برای بالا آوردن اپ ویزگی
سرور اجرا کننده اپ ویزگی سرور standalone تورنادو خواهد بود. برای این کار ما به ایمپورت کردن چند ماژول از تورنادو نیاز پیدا میکنیم. tornado.ioloop - tornado.httpserver - tornado.wsgi رو باید در این پروژه ایمپورت کنیم. برای ایجاد یک اپ ویزگی قابل اجرا بر روی سرور تورنادو باید اپ فلسک را به صورت یک آرگومان در کلاس WSGIContainer ماژول tornado.wsgi قرار بدیم.
wsgi_app = tornado.wsgi.WSGIContainer(flask_app)
در نهایت باید این اپ را به صورت یک آرگومان به HTTPServer تورنادو پاس بدیم.
http_server = tornado.httpserver.HTTPServer(wsgi_app)
سرور باید روی یک پورت به درخواستها گوش بده. آخر سر هم باید ایونت لوپ تورنادو را اجرا کنیم.
* سروری که در کنار فریمورکهای ویزگی وجود داره برای development استفاده میشه و نه در production به علت کارایی پایین و برخی مسائل دیگه
*اجرای یک اپ ویزگی همروند روی یک ایونت لوپ ناهمروند احتمالا مشکلاتی در رابطه با مقیاسپذیری به وجود میاره