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? -- JJ _______________________________________________ Madrid-pm mailing list [email protected] http://mail.pm.org/mailman/listinfo/madrid-pm
