Мы используем Twisted для приложений, требующих много асинхронного io. Есть случаи, когда материал привязан к процессору, и для этого мы создаем пул процессов для выполнения работы и также имеем систему управления этими серверами на нескольких серверах - все это делается в Twisted. Прекрасно работает. Проблема в том, что трудно довести новых членов команды до скорости. Для написания асинхронного кода в Twisted требуется почти вертикальная кривая обучения. Как будто люди просто не думают так естественно.
Мы рассматриваем смешанный подход. Возможно, держите часть сервера xmlrpc и управление процессом в Twisted и реализуйте другие вещи в коде, который по крайней мере выглядит синхронно до некоторой степени, пока он не является таким. Затем снова я хочу, чтобы явное выражение неявно, поэтому я должен думать об этом немного больше. В любом случае, на зеленых плантациях - насколько хорошо это работает? Таким образом, Stackless и, как вы можете видеть из моего Gallentean avatar, я хорошо знаю об огромном успехе в этом использовании для флагманской игры EVE Online CCP из первых рук. Как насчет Eventlet или gevent? На данный момент только Eventlet работает с Twisted. Однако gevent утверждает, что он быстрее, чем не чистая реализация python, но вместо этого полагается на libevent. Он также утверждает, что имеет меньше отличий и недостатков. gevent Он поддерживает 1 парня, насколько я могу судить. Это делает меня несколько непринужденным, но все прекрасные проекты начинаются таким образом... Тогда там PyPy - я даже не дочитал о что еще один - просто видел это в этой теме: Недостатки без стеков.
Так запутанно - мне интересно, что делать, - похоже, что Eventlet, вероятно, лучший вариант, но действительно ли он достаточно стабилен? У кого-нибудь есть опыт? Должны ли мы пойти с Stackless вместо этого, поскольку это было вокруг, и это проверенная технология - так же, как и Twisted, - и они прекрасно работают вместе. Но все же мне не нравится иметь отдельную версию Python для этого. что делать....
Эта несколько неприятная запись в блоге ударила ногой по голове для меня, хотя: Асинхронный ввод-вывод для взрослой жизни Я не получаю Twisted как Java замечание о том, что я, как правило, где вы находитесь в потоковом мышлении, но что угодно. Тем не менее, если эта вещь для патчей обезьян действительно работает так же, как это, тогда ничего себе. Просто ничего себе!