Прошу прощения за ответ на старый вопрос, но я наткнулся на этот и удивился, почему на него не было больше ответов. Чтобы ответить на вопрос Барта Дж.:
Я хотел бы разобрать RSS-каналы в приложении Tornado. Считаете ли вы, что это довольно ресурсоемко?
Ну, это зависит от того, какой синтаксический анализ вы выполняете и на каком оборудовании :) Долгое время - это долгое время, поэтому, если вашему приложению требуется больше, скажем, полсекунды для ответа, оно будет казаться вялым - профилируйте свое приложение.
Ключ к быстродействию систем - это отличная архитектура, не столько особенности, сколько, например, какой фреймворк вы используете (Twisted, Tornado, Apache + PHP). У Tornado есть асинхронный стиль обработки, и, на мой взгляд, многое из этого сводится к этому. Node.js, Twisted и Yaws - это примеры других асинхронных веб-серверов, которые очень хорошо масштабируются благодаря легковесному подходу и асинхронному стилю обработки.
Так:
Когда следует использовать Торнадо?
Когда это бесполезно?
Tornado хорош для обработки большого количества подключений, поскольку он может отвечать входящему клиенту, отправлять обработчик запросов и не думать об этом клиенте, пока обратный вызов результата не будет помещен в очередь событий. Поэтому для этого конкретного качества следует использовать Tornado, если вы хотите хорошо масштабироваться при обработке большого количества запросов. Асинхронная обработка облегчает функциональную развязку и доступ к данным без совместного использования. Это действительно хорошо сочетается с дизайном без сохранения состояния, таким как REST или другой сервис-ориентированной архитектурой . Вам также не нужно иметь дело с порождением потоков или процессов с присущими им накладными расходами, и вы можете избавиться от некоторых проблем с блокировкой / IPC.
С другой стороны, Tornado не будет иметь большого значения, если вашему бэкэнду и / или хранилищу данных требуется много времени для обработки запросов. Это помогает создавать параллельные проекты и, в частности, веб-сервисы. Параллельная архитектура упрощает масштабирование вашего проекта и сохраняет низкую взаимосвязь. По крайней мере, это мой опыт работы с Торнадо.