[Madrid-pm] Colas en Perl

Jorge Gonzalez jorge.gonzalez en daikon.es
Mar Ene 17 04:52:49 PST 2012


No acabo de entender muy bien tu pregunta porque aunque se que Perl se 
usa mucho en temas de biologia (para secuenciacion de cromosomas?) no es 
mi campo de conocimiento.

En cualquier caso, respecto a lo ultimo que comentas en tu correo, para 
gestionar colas te recomiendo un servidor RabbitMQ y el modulo de Perl 
correspondiente (Net::AMQP). Mas info aqui:

http://www.slideshare.net/norbu09/rabbitmq-for-perlmongers

RabbitMQ es un servidor Middleware que corre nativo (no es Java como 
ActiveMQ) y tambien es estandar (AMQP). El servidor además corre sobre 
la plataforma Erlang, cosa que para mi es una bonificacion importante 
(he trabajado en telco y conozco la plataforma y su estabilidad).

Si prefieres STOMP creo que incluso hay un plugin STOMP->RabbitMQ si no 
recuerdo mal.

Buscado, aqui está: http://www.rabbitmq.com/stomp.html

Slds
J.

El 17/01/12 13:39, JJ Merelo escribió:
> Hola,
> Estoy intentando ver cómo gestionar colas en Perl. El problema viene,
> como siempre, de implementar un algoritmo evolutivo. Lo he hecho en
> CouchDB con la población almacenada ahí y diferentes clientes pidiendo
> cromosomas para evaluar o reproducirlos. Los detalles no vienen al
> caso, pero el problema es que CouchDB devuelve conjuntos aleatorios
> que se pueden solapar, lo que hace que se pierda en eficiencia.
> Posiblemente haya una mejor forma de hacerlo, pero lo que se me ha
> ocurrido es usar un feed que da CouchDB con los cambios, y al que se
> puede acceder mediante una librería que usa AnyEvent; a partir de ese
> feed, crear "paquetes" de cromosomas a evaluar únicos, que se vayan
> sirviendo a los clientes. He estado mirando cómo hacerlo desde CouchDB
> y en principio no se puede. Así que la idea era que en vez de que los
> clientes pidieran cromosomas directamente a CouchDB, el lector del
> feed de cambios creara paquetes y los mandara a una cola de mensajes;
> los clientes leerían de esa cola de mensajes paquetes que, en
> principio, no se solaparían. Todo de forma asíncrona, sin cerrar a
> nadie ni nada.
> Cómo se implemente me preocupa poco, se puede usar POE, o AnyEvent o
> incluso node.js; pero el problema es que he intentado ver los sistemas
> de colas que hay y no sé muy bien con cuál quedarme, o cuál funcionará
> mejor con Perl.
> He probado Spread y el módulo del mismo nombre y simplemente no
> funciona, devuelve null cuando uno se conecta. TheSchwartz es más bien
> un modelo de trabajadores, y no es lo que busco. Quizás ActiveMQ con
> Net::Stomp, pero no quiero meterme en un jardín que complique más las
> cosas de lo que debería ser algo sumamente simple: un buzón donde deje
> paquetes y se puedan sacar de forma asíncrona, sin preocuparme
> demasiado la prioridad.
>
> ¿Alguna ayuda?
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://mail.pm.org/pipermail/madrid-pm/attachments/20120117/a2f5aee9/attachment.html>


Más información sobre la lista de distribución Madrid-pm