Вопрос

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

Мы считаем смешанным подходом возможно. Может быть, сохранить часть сервера XMLRPC и управление процессом в скрученном и реализовать другие вещи в коде, что, по крайней мере, выглядит синхронно в некоторой степени, пока не такой. Затем мне снова нравится явный над неявным, поэтому я должен подумать об этом немного больше. В любом случае на Greenlets - насколько хорошо работает этот материал? Таким образом, есть StateLess и, как вы можете видеть из моего галерентий аватара, я хорошо знаю, что огромный успех в этом использовании для Flagshance EVE Online онлайн. Как насчет Eventlele или Gevent? Хорошо на данный момент только эфлета работает с помощью скрученных. Однако Gevent утверждает, что будет быстрее, так как это не чистая реализация Python, а вместо этого зависит от либера. Это также утверждает, что у них меньше характерных и дефектов и дефектов. завещание Он поддерживается 1 парень, насколько я могу сказать. Это делает меня несколько леем, но все отличные проекты начинаются так ... тогда есть Выпивка - Я еще не закончил читать об этом - только что увидел его в этой теме: Недостатки стеклоподъемников.

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

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

Это было полезно?

Решение

Возможно, вы захотите проверить:

Eventlet и Gevent на самом деле не совсем сопоставимы с StateLess, потому что Cartless Ships со стандартной библиотекой, которая не знает о Tashslets. Есть реализации Разъем для Stackelless Но ничего не совсем всеобъемлющего, как Gevent.monkey. Отказ CCP не использует голые кости без степочек, он имеет что-то названное в I / O / o Cartless, который AFAIK является только для Windows и никогда не открывающуюся (?).

И EVELLULD и GEVENT могут быть сделаны для пробежки на Stockless, а не на Greenlet. В какой-то момент мы даже пытались сделать это как GSOC Project Но не нашел студента.

Другие советы

Отвечая на часть вашего вопроса - если вы посмотрите на http://speed.pypy.org. Вы увидите, что используя скрученные на вершине Pypy мая Дайте вам несколько ускорений. Это зависит от курса на вашей рабочей нагрузке, но, вероятно, стоит проверить.

Ваше здоровье,
фиджал

Я построил небольшое веб-приложение в реальном времени на вершине Eventlet и Repoze.bfg (я отказался от Django довольно давно). Я нашел Eventlet и Bonkey Patching, чтобы быть так же просто, как говорит Тед.

Gevent не чистый Python, и он строго зависит от Cpython. От веб-кадров, которые вы упомянули Соревнование (OpenStack) и Торнадо (Fressfeed, quora) имеет самое большое развертывание.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top