Как стать автором
Обновить

Комментарии 8

Хм, а поясните, ThreadPoolExecutor — это все-таки пул обычных потоков или каких-то асинхронных воркеров? Слабо понял из документации, и если все-таки второе, то не очень понятно, чем не устроил изначально такой же асинхронный торнадовский ioloop.

Про остальное — очень интересно, конечно, а возможность синхронно перехватывать исключения — это просто прекрасно, особенно после ада с Twisted, в котором это сделать невозможно (за редкими исключениями — упс), но как задумчиво и емко выражаются разработчики Джанго, «writing Web applications can be monotonous, because we repeat certain patterns again and again». Отсутствие батареек для каких-то самых простых в мире задач типа регистрации пользователей и необходимость писать все это вручную — суровый кирпич на шею Торнадо, по-моему. Интересно было бы посмотреть на примеры реального использования.
Ну да, обычные системные треды. Думаю, отсутствие многих батареек связано с тем, что торнадо не привязан к какой-то определённой бд или орм.
Если это системные треды, то никакой параллельности не будет из-за GIL внутри питона. Нужно разные процессы через multiprocessing делать. Разве не так?
нет, GIL не позволит одновременно выполняться python коду в нескольких потоках, а вот функциям из c библиотек и io всех видов — пожалуйста
Через ProcessPoolExecutor, надстройку над multiprocessing с таким же как у ThreadPoolExecutor интерфейсом.
Таким же, да не таким же. Чтобы multiprocessing использовать объекты должны быть pickle, а это значит прощай лямбды и другие динамические штуки.
А где же обещанное
Вы наверняка заметили одно узкое место: file = self.request.files['file'][0]. Да, действительно, мы грузим весь файл изображения в память прежде чем записать его в базу. И вы наверное, подумываете что можно воспользоваться чем-то типа NginxHttpUploadModule. Однако теперь это можно сделать и средствами tornado: tornado.web.stream_request_body. Возможно, это мы и сделаем в одном из следующих уроков.
Будет :)
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Изменить настройки темы

Истории