Esta semana tuve que armar un Queue para un proyecto en el que estamos trabajando (WHObyYOU.com) y obviamente intenté hacerlo con Zend_Queue.
En este caso necesitaba consumir en "tiempo real" la Streaming Api de Twitter (ya haré un post sobre esto), por lo que necesitaba procesar los tweets fuera el proceso que consumía el stream.
Zend_Queue es bastante simple y no tiene mucho misterio. En este caso vamos a usar el adaptador de Base de Datos (Zend_Queue_Adapter_Db) para guardar nuestros mensajes.
Primero creamos las tablas que necesitamos (queue y message), en el caso de mysql:
La defincion de tablas la pueden encontrar en Zend/Queue/Adapter/Db/mysq.sql
Creamos el queue utilizando una clase abstracta:
Luego agreguemos un Tweet al queue, supongamos que un Tweet es una array:
Luego a procesar los mensajes. En el caso de este proyecto, hicimos una tarea programada (cron) que corre cada 30 segundos y procesa el queue. Zend_Queue retorna los mensajes usando Zend_Queue_Message_Iterator (lo pueden ver en la documentacion).
Esto se puede mejorar mucho creando nuestros propios adaptadores, eso vendrá en una próxima entrega.
No hay comentarios.:
Publicar un comentario