Мы широко используем 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, как правило, где вы находитесь в потоке мышления, но что угодно.Тем не менее, если эта штука с обезьянами действительно так и работает, то ничего себе.Просто вау!