Eventlet или Gevent или Stackless + Twisted, Pylons, Django и SQL Alchemy

Мы широко используем Twisted для приложений, требующих большого количества асинхронных операций ввода-вывода. В некоторых случаях вместо этого вещи связаны с процессором, и для этого мы создаем пул процессов, выполняющих эту работу, и имеем систему для управления ими на нескольких серверах - все это делается в Twisted. Работает отлично. Проблема в том, что трудно привести новых членов команды в курс дела. Написание асинхронного кода в Twisted требует почти вертикальной кривой обучения. Как будто люди просто так не думают естественно.

Возможно, мы рассматриваем смешанный подход. Возможно, сохраните серверную часть xmlrpc и управление процессами в Twisted и внедрите другие компоненты в код, который, по крайней мере, до некоторой степени выглядит синхронно, хотя и не является таковым. С другой стороны, мне больше нравится явное, чем неявное, поэтому я должен подумать об этом немного больше. Во всяком случае на гринлеты - как хорошо это работает? Так что есть Stackless, и, как вы можете видеть из моего Gallentean-аватара, я хорошо знаю о его огромном успехе в использовании его для флагманской онлайн-игры EVE CCP из первых рук. А как насчет Eventlet или Gevent? Ну, пока только Eventlet работает с Twisted. Однако Gevent утверждает, что он быстрее, поскольку это не просто реализация Python, а скорее полагается на libevent. Он также утверждает, что имеет меньше идиосинкразий и дефектов.GEvent Насколько я могу судить, его поддерживает один парень. Это делает меня несколько осторожным, но все великие проекты начинаются таким образом, так что ...PyPy - Я даже еще не закончил читать об этом - просто видел это в этой теме:Недостатки Stackless.

Так запутанно - мне интересно, что, черт возьми, делать - звучит как Eventlet, наверное, лучшая ставка, но достаточно ли она стабильна? У кого-нибудь есть опыт? Должны ли мы использовать Stackless вместо этого, поскольку он существует и является проверенной технологией - как и Twisted - и они прекрасно работают вместе. Но все же я ненавижу иметь отдельную версию Python для этого. что делать....

Эта несколько неприятная запись в блоге ударила меня по голове:Асинхронный ввод-вывод для взрослых Я не понимаю, что Twisted похож на Java-замечание, так как для меня Java, как правило, там, где вы находитесь в многопоточном мышлении, но что угодно. Тем не менее, если эта штука с обезьянами действительно так и работает, то ничего себе. Просто вау!

Ответы на вопрос(4)

Ваш ответ на вопрос