Skip to content
baden edited this page Dec 20, 2012 · 28 revisions

Используемые инструменты.

Сервер.

Неблокирующие вызовы и многозадачность.

Честно говоря работа с неблокирующими вызовами tornado через tornado.get у меня вызывает уныние. Оборачивать все функции в @gen и все вызовы работы с базой данных в gen.Task мне кажется жутко неудобным. Натолкнулся на одну интересную библиотеку.

Перепробовал три варианта:

  1. Синхронная работа без каких-либо оберток. Неприемлемо в силу очевидной линейности работы.
  2. Использование библиотеки motor. Это ад разработчика - оборачивать каждый вызов mongo в yield, Op и т.п.
  3. Использование простой обертки. Библиотека чуть выше по идее должны была делать тоже самое, но у меня она заработала с глюком при большом кол-ве одновременных запросов. Этот вариант мне понравился больше всего, никаких многоэтажных оберток, никаких калбеков. В примитивном тесте со sleep и чтением из пробной базы показал наибольшую производительность. Хотя обнаружен баг: похоже не передаются параметры во внутренние процедуры. Откровенно говоря есть подозрение что эта "обертка" просто пример, и не годится для промышленного применения.

Недостатки выбора: по сути это синхронная работа, но в отдельном потоке, поэтому нет возможности запустить, скажем, запрос к базе данных и продолжить работу над чем-то другим.

Клиент.

Клиент без браузера

Есть возможность разрабатывать приложение, которое может работать без установки браузера. Причем можно сделать самодостаточный исполняемый файл (просто объединив).

Ссылки:

Интересные ссылки

Хостинг

Вот возникла мысль хостить проект на github. Например страниа может быть тут.

Другие компоненты

  • PyPy sudo add-apt-repository ppa:pypy/ppa

Clone this wiki locally