Comments 28
UFO just landed and posted this here
На скриншоте, внезапно, Свидетель О_о
+7
Если в курсе про Cyclone, есть вопрос: сильно ли Cyclone отстает от Tornado по фичам и производительности? Не пробовал ни то, ни другое, хочу Cyclone мне нравится гораздо больше из-за использования отделимого event loop
0
— Циклон бегает на Twisted.
— Нативная поддержка xmprpc и jsonrpc.
— Встроенная поддержка редиса
— Незначительно медленнее торнады.
github.com/fiorix/cyclone#readme
Торнада уже давно является стабильным продуктом, который используется в реальных проектах и я не вижу смысла начинать с циклона.
— Нативная поддержка xmprpc и jsonrpc.
— Встроенная поддержка редиса
— Незначительно медленнее торнады.
github.com/fiorix/cyclone#readme
Торнада уже давно является стабильным продуктом, который используется в реальных проектах и я не вижу смысла начинать с циклона.
0
Собственно, ваш первый аргумент решающий. В пользу циклона. И да, оно не «нативное» и не «встроенное», а обусловлено использованием twisted, для которого реализованы эти протоколы. Cyclone — просто реализация ещё одного протокола http. И даже при незначительном отставании в производительности я выберу его из-за интероперабельности и следования unix-way, если мне не подскажут других проблем с Cyclone :)
+1
А зачем вам websockets если у вас как я понял flash клиент?
0
В ff4 не могу карты увидеть, в хроме норм. Линукс.
0
или включите websockets в ff4 (что более предпочтительно), или установите свежий flash на него. галочка соединения слева сверху должна гореть зеленым. (в у нее в title можно увидеть используется ws native или flash emulation)
0
Даешь отдельный блог Tornado!
+2
Шикарные показатели производительности!
Позвольте поинтересоваться, как вы производили нагрузочное тестирование?
Позвольте поинтересоваться, как вы производили нагрузочное тестирование?
0
Гроздья в твистед? Не умеете готовить — не хайте. Даже в jquery поняли, что deferred это круто, но создатели торнадо гордые олени.
-3
В том то и дело что умеем. Опыт плотной работы с twisted около 5 лет. Если вы прочитаете статью внимательнее, вы поймете что серебрянной пули (кто бы сомневался) в очередной раз нет, и нужен выбор между несколькими моделями обработки событий. tornado этот выбор дает просто и эффективно. twisted в общем-то тоже дает, но он тянет за собой изрядный кус слоя совместимости, и все получается гораздо более громоздко и неочевидно, да еще и лишними зависимостями.
0
А почему вы решили, что я читал ее невнимательно? И потом — что такое «лишние зависимости»? Gnome? KDE? Что такое «изрядный кус слоя совместимости»? В чем громоздкость?
Вы изложите конкретно, раз уж вы реверанс в сторону твистед сделали — хаете, хайте аргументировано.
А пока пяти лет опыта незаметно.
Вы изложите конкретно, раз уж вы реверанс в сторону твистед сделали — хаете, хайте аргументировано.
А пока пяти лет опыта незаметно.
+1
Пробовали tasklet/eventlet/gevent? Как они в сравнении с торнадо?
0
Насчет ThreadableMixin что-то пугает стартовать треды на каждый start_worker()… Может все-же пул завести и очередь?
Вот последние пару недель задумывался над следующим вопросом — как мне из main thread в которой крутится event_loop и слушаются сокеты передать задание воркеру (воркер в отдельном потоке) и получить обратно от него результат не выполняя callback в треде воркера?
Пока в голову приходит только 2 очереди. Одна очередь для передачи данных от main_thread к воркерам и вторая для передачи данных от воркеров к main_thread. Причем main_thread проверяет поступили ли к ней данные в очередь на каждом обороте EventLoop в неблокирующем режиме и если поступили — обрабатывает. Единственная проблема — проверять поступление данных в очередь нужно как можно чаще, соответственно придется делать холостые обороты в EventLoop…
Собственно вопрос — может ли worker_thread как-то добавлять свои события в EventLoop?
Вот последние пару недель задумывался над следующим вопросом — как мне из main thread в которой крутится event_loop и слушаются сокеты передать задание воркеру (воркер в отдельном потоке) и получить обратно от него результат не выполняя callback в треде воркера?
Пока в голову приходит только 2 очереди. Одна очередь для передачи данных от main_thread к воркерам и вторая для передачи данных от воркеров к main_thread. Причем main_thread проверяет поступили ли к ней данные в очередь на каждом обороте EventLoop в неблокирующем режиме и если поступили — обрабатывает. Единственная проблема — проверять поступление данных в очередь нужно как можно чаще, соответственно придется делать холостые обороты в EventLoop…
Собственно вопрос — может ли worker_thread как-то добавлять свои события в EventLoop?
0
1. мне больше gevent нравиться.
2. А разве от websockets не отказались (из-за проблем с уязвимостью)? Они вроде сейчас включены по умолчанию только в Chrome.
2. А разве от websockets не отказались (из-за проблем с уязвимостью)? Они вроде сейчас включены по умолчанию только в Chrome.
0
if hasattr(self, 'res'):
self.finish(self.res)
Этот код при любом запросе ajax или get/post просто сделает редирект на страницу, к которой был сделан запрос, отобразив self.res в окне браузера, вместо того чтобы вернуть переменную инициатору запроса.
0
> Увы и ах. Всеми любимый nginx не умеет проксировать websocket протокол.
В новой версии уже может. Поправьте пожалуйста.
В новой версии уже может. Поправьте пожалуйста.
+1
Так и не поправили — Nginx и Websockets
0
Sign up to leave a comment.
Многопоточное приложение под Tornado