Eventlet o gevent o Stackless + Twisted, Pylons, Django y SQL Alchemy

Estamos utilizando Twisted ampliamente para aplicaciones que requieren una gran cantidad de io asíncrono. Hay algunos casos en los que las cosas están unidas a la CPU y para eso generamos un grupo de procesos para hacer el trabajo y también tenemos un sistema para administrarlos en varios servidores, todo hecho en Twisted. Funciona genial. El problema es que es difícil poner al día a los nuevos miembros del equipo. Escribir código asincrónico en Twisted requiere una curva de aprendizaje casi vertical. Es como si los humanos simplemente no pensaran de esa manera naturalmente.

Estamos considerando un enfoque mixto quizás. Tal vez mantenga la parte del servidor xmlrpc y la gestión de procesos en Twisted e implemente las otras cosas en el código que al menos parece síncrono hasta cierto punto mientras no es así. Por otra parte, me gusta explícito sobre implícito, así que tengo que pensar un poco más sobre esto. De todos modos, ¿qué tan bien funcionan esas cosas? Así que hay Stackless y, como puedes ver en mi avatar gallente, soy muy consciente del tremendo éxito en su uso para el juego EVE Online insignia de CCP de primera mano. ¿Qué pasa con Eventlet o gevent? Bueno, por ahora solo Eventlet funciona con Twisted. Sin embargo, Gevent afirma ser más rápido, ya que no es una implementación pura de Python, sino que se basa en Libevent. También afirma tener menos idiosincrasias y defectos.gentil Es mantenido por 1 chico por lo que puedo decir. Esto me pone un poco receloso, pero todos los grandes proyectos comienzan de esta manera, así que ... Entonces hayPyPy - Aún no he terminado de leer sobre eso, solo lo vi en este hilo:Inconvenientes de Stackless.

Tan confuso, me pregunto qué diablos hacer, parece que Eventlet es probablemente la mejor opción, pero ¿es realmente lo suficientemente estable? ¿Alguien por ahí tiene alguna experiencia con eso? En su lugar, deberíamos usar Stackless, ya que ha existido y es una tecnología probada, al igual que Twisted también, y funcionan juntos muy bien. Pero aún odio tener que tener una versión separada de Python para hacer esto. qué hacer....

Sin embargo, esta entrada de blog algo desagradable me dio en el clavo:IO asíncrono para adultos No entiendo que Twisted es como un comentario de Java en cuanto a mí, Java es típicamente donde estás en la mentalidad de subprocesos, pero lo que sea. Sin embargo, si ese parche de mono realmente funciona así, entonces wow. ¡Simplemente guau!

Respuestas a la pregunta(4)

Su respuesta a la pregunta