LINUX.ORG.RU

Релиз Tornado 2.0

 , ,


0

1

До версии 2.0 обновился открытый фреймворк Tornado (Python), включающий масштабируемый и неблокирующий веб-сервер и сопутствующие приложения, используемый, в частности, для работы FriendFeed. Проект Tornado во много схож с воплощающими аналогичную функциональность web.py и Google WebApp, однако включает в себя дополнительные инструменты и оптимизацию для реализации неблокирующей системы. К тому же, по сравнению с конкурентами Tornado весьма быстр.

Изменения в новой версии включают поддержку Python 3.2, IPV6 для HTTPServer и HTTPClient, новые директивы шаблонов, использование реализации simple_httpclient для AsyncHTTPClient по умолчанию. Также изменены некоторые предустановленные настройки.

Скачать

>>> Подробности

★★★★★

Проверено: maxcom ()
Последнее исправление: maxcom (всего исправлений: 1)

> весьма быстр

19th century benchmark results?

anonymous
()

Довольно-таки минорный релиз, хоть и 2.0.

anonymous
()
Ответ на: комментарий от Chaser_Andrey

Объясните в двух словах - зачем это может понадобиться?

Ъ? В тексте новости есть одно упоминание.

baverman ★★★
()
Ответ на: комментарий от Chaser_Andrey

>Объясните в двух словах - зачем это может понадобиться?

В нём асинхронность легко делается.

anonymous
()
Ответ на: комментарий от Chaser_Andrey

Говорят что это лучший Python web framework на сегодняшний день. То есть в двух словах - «для веб» Я нашел исходный код очень очень хорошим. Наверное лучшее что я видел за 10 лет на питоне.

anonymous
()
Ответ на: комментарий от anonymous

А пихтон уже умеет использовать более 1 процессора?

man «асинхронные сервера» и как их обычно деплоят для утилизации всех ядер.

baverman ★★★
()
Ответ на: комментарий от anonymous

Значит, все фигово, как и 20 лет назад.

Товарищ, вы совершенно не в теме.

baverman ★★★
()
Ответ на: комментарий от anonymous

А для не веба во-первых особо не зачем, во-вторых сишные расширения отдают GIL, в третьих если тебе прям параллельно матрицы считать нужно, есть multiprocessing. С многотредовостью проблем больше, чем профита.

dizza ★★★★★
()

>К тому же, по сравнению с конкурентами Tornado весьма быстр.

конкуренты тоже на питоне? Или таки жабу обогнали?

AVL2 ★★★★★
()
Ответ на: комментарий от baverman

man «асинхронные сервера» и как их обычно деплоят для утилизации всех ядер.

А можно в двух словах для общего развития?

o
()
Ответ на: комментарий от anonymous

В рамках одного процесса не умеет.

Reset ★★★★★
()
Ответ на: комментарий от baverman

Этим сам Tornado занимается, или как-то специально надо запускать?

Интересная тема, но не настолько, чтобы лезть в гугл :)

o
()
Ответ на: комментарий от o

Этим сам Tornado занимается?

Да. Он может сам форкать чайлдов. По-моему, даже автоматически определяет число процессоров.

baverman ★★★
()
Ответ на: комментарий от AVL2

>конкуренты тоже на питоне? Или таки жабу обогнали?

Ну Эрланг обогнали еще в 2007 году

demmsnt
()

Ждём, когда twisted догонит с поддержкой питона.

dotbg ★★★★
()
Ответ на: комментарий от anonymous

Говорят что это лучший Python web framework на сегодняшний день.

Тоньше, тоньше нужно %)

dizza ★★★★★
()
Ответ на: комментарий от anonymous

Оно уже быстрее рельсов?

Блин тут один толще другого. Я в растерянности. Срочно нужно создать тему «Я использовал Common Lisp последние 5 лет и решив попробовать С++ не понимаю как на нем можно писать» для отпугивания тролей.

dizza ★★★★★
()

Никогда не понимал этого стремления к асинхронности - ну, получили запрос асинхронно, начинаем обрабатывать... упс, заблокировались на I/O. В чем профит?

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

В том, что заблокированный тред не жрет CPU, однако существует. Что бы CPU не простаивал, создаем больше тредов. Но тут хренас два: много тредов => много контекст свитчей, следовательно кпд решения низкое, так как большая часть ресурсов тратится на тупое переключение задач.

dizza ★★★★★
()
Ответ на: комментарий от dizza

> В том, что заблокированный тред не жрет CPU

Ну это я понимаю. Но асинхронность какая-то очень односторонняя получается - запрос от юзера асинхронный и неблокирующийся, но его обработка - и синхронная, и блокируящаяся. Или я что-то не так понимаю, и есть костыли^Wсредства, позволяющие обработчикам HTTP-делать асинхронные запросы к БД и ФС?

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

но его обработка - и синхронная, и блокируящаяся

Блокирующие вызовы внутри торнады запрещены. Ну то есть ты можешь сделать блокирующий вызов, но производительность свалится в какашку.

средства, позволяющие обработчикам HTTP-делать асинхронные запросы к БД и ФС?

Там из коробки идет неблокирующий HTTP-клиент. Если хочется делать неблокирующие вызовы к БД, то из каропки есть врапер к мускулю,к постгру есть Momoko, например. Если хочешь делать неблокирующие вызовы к ФС, то придется писать приблуду с использованием IOLoop. Хотя там не сложно.

dizza ★★★★★
()

А зачем асинхронность сокетов то? Подавляющее большинство запросов <1k (а то и меньше 500байт) и прилетает сразу. Параллельно ничего не успеешь сделать. Если генерация ответа и вывод синхронный, то действительно - где профит? Наоборот, в данном случае асинхронность, скорей всего, будет работать чуть медленнее из-за ненужного оверхеда с калбеками.

d9d9 ★★★★
()
Ответ на: комментарий от AVL2

>> К тому же, по сравнению с конкурентами Tornado весьма быстр.

конкуренты тоже на питоне? Или таки жабу обогнали?

Под конкурентами, кто имеется ввиду ПыхПых?)

anonymous
()
Ответ на: комментарий от d9d9

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

dizza ★★★★★
()
Ответ на: комментарий от anonymous

Был такой эпик срач

Прямыми конкурентами Tornado на других языках можно назвать libev(C), Netty (Java). На самом деле все они очень и очень достойные конкуренты, ибо представляют собой, ни много ни мало, обертку вокруг epoll. Крики «жаба медленее» и тому подобное палит полное незнание матчасти.

dizza ★★★★★
()
Ответ на: комментарий от Makc

Ну он, видимо, не плох. Надо помнить, что инфраструктура это мелочь. Какая разница Х или У? Код писать за вас никто не будет. Есть, конечно, некоторые вариации, но они не так сильны.

dizza ★★★★★
()
Ответ на: комментарий от dizza

> Если прилетает сразу, то можно и синхронно.

В этот 1к входит запрос :)
Если не прилетел, то обрабатывать особо и нечего.
Разве что парсить заголовки по мере поступления.

d9d9 ★★★★
()
Ответ на: комментарий от dizza

> Был такой эпик срач

Тяжеловатая страничка. Хром начал фризиться при скроле и отел на эту вкладку столько, сколько лиса всего (ок 10 табов, включая эту страничку). Шустрота такая шустрота.

PS Прошу прощения за офтоп.

anonymous
()

Только начал изучать Питон и Джангу. Зря? Может сразу начать с Торнадо? Или для сайта Торнадо ещё нельзя использовать? Есть ли CMS, хотя бы какой-нибудь сырой или начинающий для Торнадо?

anonymous
()
Ответ на: комментарий от tailgunner

>и есть костыли^Wсредства, позволяющие обработчикам HTTP-делать асинхронные запросы к БД и ФС?

Триста лет как есть. Для самых популярных БД (читай, mysql и postgres) есть давно, для ФС вообще испокон веку - man select.

anonymous
()
Ответ на: комментарий от anonymous

CMS для торнадо, афаик, нет. Это немного из другой оперы штука, вообще говоря.

Основное предназначение торнады - делать мэшапы, типа френдфида, который ему собственно рождение и дал. Ну или какие-то специфические фронтэнды в многозвенной системе.

anonymous
()
Ответ на: комментарий от anonymous

>Только начал изучать Питон и Джангу. Зря? Может сразу начать с Торнадо?

Это очень разные вещи. Лучше сначала питон, потом джанго, а потом и всякие микрофреймворки с торнадами.

anonymous
()
Ответ на: комментарий от anonymous

> Для самых популярных БД (читай, mysql и postgres) есть давно

Да, мне уже и линк дали.

для ФС вообще испокон веку - man select.

Ты, наверное, микроядерный анонимус? Судя по глубине знаний.

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

>Ты, наверное, микроядерный анонимус? Судя по глубине знаний.

Не, я монолитный. Что не так-то? В poll-object (или в select, не важно) кладутся файловые дескрипторы, не важно, являются они сокетами или открытыми файлами с ФС.

Суть асинхронной работы в том и состоит, чтобы класть все хэндлы в одну кучу и опрашивать их сразу все, вызывая колбэки только для тех из них, которым есть что делать. (Это если пятизвездочник, попрекающий анонимуса в бестолковости, не в курсе).

anonymous
()
Ответ на: комментарий от anonymous

> Что не так-то? В poll-object (или в select, не важно) кладутся файловые дескрипторы, не важно, являются они сокетами или открытыми файлами с ФС.

На regular files традиционный select (и poll, ЕМНИП) всегда возвращает готовность к чтению и записи. Для реализации асинхронного I/O они бесполезны.

Это если пятизвездочник, попрекающий анонимуса в бестолковости, не в курсе

Он в курсе.

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

всегда возвращает готовность к чтению и записи.

Жесть какая... А как обстоят дела с epoll? Ну Сысоев же как-то свой nginx написал? На крайняк у него спросим :)

Кстати, tornado не только прикольный сервачок, но и клевая обертка на poll/epoll/kqueue. IOLoop называется.

dizza ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.