2009-11-04 15 views
5

Estoy trabajando en un proyecto (principalmente) de Perl y quiero usar una cola de mensajes para aislar procesos entre sí. Tengo un flujo de trabajo de la siguiente manera:¿Cuál es la cola de IPC/mensajes más rápida de Perl para una sola máquina?

Entrada -> Receptor -> Procesador (s) -> Salida (s)

que necesito para manejar varios cientos de transacciones/segundo, por lo que acelerar mi mayor motivación. ¿Cuál es el sistema de cola de mensajes más rápido para este tipo de configuración?

Todos mis procesos se ejecutan en la misma máquina, por lo que puedo usar sockets UNIX o temp-files si esto significa un mejor rendimiento.

Hasta ahora mis dos favoritos son IPC :: DirQueue y beanstalkd. ¿Alguien tiene experiencia con ambos y puede sacar conclusiones sobre cuál es más rápido?

¿Qué más hay disponible que haga una cola de trabajo súper rápida en una sola máquina?

Respuesta

3

No sé acerca de IPC :: Dirqueue o beanstalkd, pero he tenido un buen éxito con spread (con los módulos Spread o Spread::Message). Es fácil hacer procesos múltiples (con otro daemon en ejecución) y también múltiples máquinas. Lo bueno es que, dado que se basa en grupos, puede conectar fácilmente otro oyente si desea hacer cosas como el registro, las estadísticas o la depuración sin tener que alterar (o desacelerar) sus procesadores.

+2

No puedo evitar alegrarme por esto. Feliz usuario durante unos años en mi antiguo trabajo, incluso recibí algún tipo de asistencia personalizada pagada de los autores, una clase mundial por todas partes. –

+0

Gracias por esto. He tenido tareas similares a las de OP antes y nunca me crucé. Voy a darle un giro cuando tenga la oportunidad! – tsee

Cuestiones relacionadas