Tornado - веб-фреймворк реального времени
Tornado - версия расширяемого, неблокирующего веб-сервера с открытым исходным кодом и средств, на которых работает FriendFeed. Приложение FriendFeed написано с использованием веб-фреймворка, в некоторой степени похожего на web.py или Google's webapp, но с дополнительными средствами и оптимизацией для получения преимуществ использования неблокирующей инфраструктуры.
Фреймворк Tornado отличается от большинства фреймворков веб-серверов (и, разумеется, большинства Python-фреимворков), так как он неблокирующий и достаточно быстрый. Tornado неблокирующий и использует epoll, он может обрабатывать тысячи одновременных постоянных подключений, что делает его идеальным решением для веб-сервисов реального времени. Этот веб-сервер специально разработан для обслуживания возможностей, требующих работы в реальном времени — каждый активный пользователь FriendFeed поддерживает открытое соединение с серверами FriendFeed. (Для получения более подробной информации по масштабированию серверов обратитесь к статье C10K problem.)
Вы можете ознакомиться с Документацией по Tornado для детального знакомства с фреймворком.
Данная статья предлагает краткое введение в Tornado.
Загрузка и установка Tornado
Загрузка: tornado-0.1.tar.gz
tar xvzf tornado-0.1.tar.gz
cd tornado-0.1
python setup.py build
sudo python setup.py install
Предпосылки
Tornado проверен на Python 2.5 и 2.6. Для использования всех возможностей Tornado, Вам потребуются установленные PycURL и библиотека JSON типа simplejson. Подробные инструкции по установке для Mac OS X и Ubuntu приведены ниже для Вашего удобства.
Mac OS X 10.5/10.6
sudo easy_install setuptools pycurl==7.16.2.1 simplejson
Ubuntu Linux
sudo apt-get install python-dev python-pycurl python-simplejson
Hello, world
Приведём традиционный пример приложения "Hello, world" для Tornado:
import tornado.httpserver
import tornado.ioloop
import tornado.web
class MainHandler(tornado.web.RequestHandler):
def get(self):
self.write("Hello, world")
application = tornado.web.Application([
(r"/", MainHandler),
])
if __name__ == "__main__":
http_server = tornado.httpserver.HTTPServer(application)
http_server.listen(8888)
tornado.ioloop.IOLoop.instance().start()
Ознакомьтесь с Документацией по Tornado.
Обсуждение и поддержка
Вы можете обсудить Tornado и сообщить об ошибках в списке рассылки разработки Tornado.
Tornado - одна из технологий Facebook с открытым исходным кодом. Это программное обеспечение доступно по Apache Licence, Version 2.0.
Вся документация распространяется под лицензией Creative Commons 3.0.