Eventlet или gevent или Stackless + Скрученный, Опоры, Django и Алхимия SQL

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

Мы рассматриваем смешанный подход, возможно. Возможно, сохраните xmlrpc часть сервера и управление процессами в Скрученном и реализуйте другой материал в коде, который, по крайней мере, выглядит синхронным в некоторой степени не будучи как таковым. С другой стороны мне нравится явный по неявному, таким образом, я должен думать об этом немного больше. Так или иначе на greenlets - как хорошо, который наполняет работу? Таким образом, существует Stackless и как Вы видите от моего аватара Gallentean, в котором я хорошо знаю об огромном успехе, он - использование для ведущей Онлайн-игры КАНУНА CCP на собственном опыте. Что относительно Eventlet или gevent? Хорошо на данный момент только Eventlet работает со Скрученным. Однако gevent утверждает, что был быстрее, поскольку это не чистая реализация Python, а скорее полагается на libevent вместо этого. Это также утверждает, что имело меньше особенностей и дефектов. gevent Это сохраняется 1 парнем насколько я могу сказать. Это делает меня несколько хитрым, но все замечательные проекты запускают этот путь так... Затем существует PyPy - я даже не закончил читать о том все же - просто видел его в этом потоке: Недостатки Stackless.

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

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

36
задан Community 23 May 2017 в 11:45
поделиться

2 ответа

Вы можете проверить:

Eventlet и gevent на самом деле несравнимы с Stackless , потому что Stackless поставляется со стандартной библиотекой, которая не поддерживает тасклеты. Существуют реализации сокета для Stackless , но нет ничего более всеобъемлющего, чем gevent.monkey . CCP не использует голые кости Stackless, у него есть что-то, называемое Stackless I / O, которое AFAIK предназначено только для Windows и никогда не было открытым исходным кодом (?).

И eventlet, и gevent можно было заставить работать на Stackless, а не на greenlet. В какой-то момент мы даже пытались сделать это как проект GSoC , но не нашли ученика.

28
ответ дан 27 November 2019 в 06:15
поделиться

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

Ура,
фиджал

4
ответ дан 27 November 2019 в 06:15
поделиться
Другие вопросы по тегам:

Похожие вопросы: