Как работает uwsgi для python и Django\tornado конкретно?
Добрый день!
Пытаясь ускорить работу сайта на python начал искать разные фреймворки и решил попробовать связку tornado+sqlalcemy+wheezy.template.
В итоге поставил на моменты инициализации сессии и шаблонного движка вывод сообщений и понял, что для каждого клиента эта инициализация происходит по новой, sqlalchemy снова подключается к бд, wheezy снова компилирует шаблоны.
Вопрос: а нет ли возможности запуска приложения до определенного момента, то есть у меня происходит прединициализация и потом приложение обрабатывает все запросы из какой-то точки не инициализируя заново?
Есть подозрения, что так работает uwsgi, ну или как-то похоже, но не нашел описания нормального.
Буду рад любой информации!
Решил выяснить сам.
В итоге, простой вариант:
uwsgi запускается, инициализирует экземпляр скрипта\апликации и ждет запроса.
При получении запроса он отправляется на функцию, которая принимает два параметра
environ и функцию-колбек start_response.
Это если в общих чертах.
А торнадо позволяет сделать инициализацию всех систем ранее и потом обрабатывать запросы.
Я может не точно выразился, модуль для работы с uwsgi. Вот что я имел ввиду.
к автору: зачем такие сложности? у вас высоконагруженный проект? Вы всегда сможете сделать пул соединений допустим для pg, sqlalcemy умеет делать пул, так же можно и нужно использовать кеширование для некоторых частей сайта.
Я где-то читал мнение что ORM хороша в сложных проектах типа внутренних документооборотов. А если мы говорим про высоконагруженный сайт, то там каждый запрос в бд должен быть максимально кастомным и быстрым