Посты с тэгом asynchronous


Centrifuge — я больше не буду обновлять страницу перед отправкой комментария


Прошло некоторое время с тех пор, как я писал про Центрифугу в предыдущий раз. Произошло множество изменений за этот период. Многое из того, что было описано в ранних статьях (1, 2) кануло в лету, но суть и идея проекта остались прежними — это сервер рассылки real-time сообщений пользователям, подключенным из веб-браузера. Когда на вашем сайте возникает событие, о котором вам нужно моментально сообщить некоторым вашим пользователям, вы постите это событие в Центрифугу, а она, в свою очередь, отправляет его всем заинтересованным пользователям, подписанным на нужный канал. В самом простом виде это показано на схеме:



Centrifuge набирает обороты

Привет!

Пару месяцев назад я опубликовал на Хабре статью, посвященную описанию open-source проекта Centrifuge. Напомню, что это сервер рассылки сообщений подключенным клиентам (в основном из веб-браузера) в реальном времени. Написан на Python.

С тех пор я продолжал работать над проектом в свободное время и сейчас готов поделиться накопившимися мыслями и изменениями.

Читать дальше →


[recovery mode] Centrifuge — брокер реал-тайм сообщений

Привет, Хабр!

В статье я опишу свой небольшой open-source проект — Centrifuge (далее Центрифуга). Это сервер на Python, задача которого — рассылка (broadcast) сообщений в реальном времени подключенным (в основном из браузера) клиентам.

Это будет история, наполненная как личными эмоциями, так и описанием используемых технологий, но без примеров кода. Если вам близка тема — не проходите мимо, будет любопытно.

Для начала, посмотрите, пожалуйста, скринкаст (не забудьте включить субтитры), если после просмотра интерес не пропадет, смело читайте дальше!


Читать дальше →



Python / Вышел Tornado Web Server 2.0 RC

Основные изменения:


  • Автоматически добавляются escape-символы при выводе в шаблоны
  • Стандартная реализация AsyncHTTPClient теперь simple_httpclient.
  • Поддержка Python 3.2.


Минорные изменения:


  • Новые теги шаблонизатора:
    — {% autoescape ...%} управление добавлением escape — символов
    — {% raw… %} убрать escape-символы
    — {% module… %} для вызова UIModules
  • {% module Template(path, **kwargs) %} теперь может быть использовано для вызова другого шаблона с независимым пространством имен
  • Все вызовы IOStream callbacks теперь осуществляются напрямую в IOLoop через add_callback.
  • HTTPServer теперь поддерживает IPv6. Для отключения нужно передать параметр family=socket.AF_INET в HTTPServer.bind().
  • HTTPClient теперь поддерживает IPv6, если у запроса установлен параметр allow_ipv6=True
  • RequestHandlers теперь может использовать кодировки, отличные от ut


Python / [Перевод] Как применять Linux epoll в Python

В статье описывается:

  • Примеры использования блокирующих сокетов
  • Преимущества асинхронных сокетов и Linux epoll
  • Примеры асинхронного использования сокетов через epoll
  • Вопросы производительности
  • Исходный код