Tornado - веб-фреймворк реального времени

Краткое описание работы в Tornado - python-фреймворка с открытым исходным кодом от Facebook.

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.

Предпосылки

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.

Оригинал статьи Tornado, перевод КОМТЕТ komtet.ru

Вам также может помочь