[ANN] simplified_starling: plugin para gestionar colas starling

Starling es un sistema de colas desarrollado por Twitter que utiliza
MemCached. Una de las particularidades de este sistema de colas es su
persistencia. Si cae el servidor, no se pierden los procesos que se
habian añadido. A nivel rendimiento no es tan rápido como el
Beanstalkd o otros, pero dicen que puede llegar a procesar 1000
mensajes por segundo.

¿Y que hace simplified_starling[1]?

A la cola de starling le puedes insertar lo que quieras en forma de
clave/valor, como a MemCache. Lo que hace el plugin es definir una
manera sencilla de insertar procesos a la cola, conectar la aplicación
Rails a un servidor de starling. Al mismo tiempo dispone de las
típicas tareas de gestion de la cola: listado, proceso, arranque de
starling.

De esta manera por ejemplo realizamos envios de newsletters:

Newsletter.find(params[:id]).push(‘deliver’)

O por ejemplo realizamos algunos cálculos …

Stock.push(‘recalculate’)

Esto lo que hace es insertar en la cola acciones que queremos realizar
sobre modelos de ActiveRecord. Podemos ver los procesos que hay en
cola con …

rake simplified:starling:queues

Iniciar una cola, con un proceso que se queda residente en memoria.

rake simplified:starling:start_processor QUEUE=stocks
rake simplified:starling:start_processor QUEUE=newsletters

Hay más en el README[2]

And that’s all. Fork me if you want!

Espero que lo disfruten.

[1] http://github.com/fesplugas/simplified_starling/tree/master
[2]
http://github.com/fesplugas/simplified_starling/tree/master%2FREADME?raw=true

Tiene muy buena pinta, Francesc, muchas gracias por compartir.

Ostras, parece cojonudo Francesc, enhorabuena!!!

Estaba dudando entre Starling o Beanstalkd para probar unas cosillas,
y creo que después de esto empezaré probando Starling :smiley:

Beanstalkd está muy bien, es muy rápido, pero la cola no es
persistente. Lo van a resolver en las proximas versiones, pero de
momento utilizamos starling y nos va bien.

El ejemplo del newsletter me viene que ni pintado.
Merci Francesc!

2008/6/19 Francesc E. [email protected]:

On Jun 20, 2008, at 12:03 AM, Guillermo Álvarez Fernández wrote:

Está chulo. Tarde o temprano lo probare para alguna cosillas. De
momento
uso delayed_jobs para cosas de newsletter. O para trabajos que no
tiene
relación directa con la base de datos. En principio, delayed_job tiene
más miga que el sistema que comentas, pero también te permite hacer
más
cosas.

Probé delayed_jobs … y permite hacer más cosas, pero inserta las
tareas en la base de datos y creo que es bastante feo hacer un loop de
selects a la base de datos mirando que trabajos hay en la cola.

Opté por starling por su simplicidad y persistencia de datos.

Otros sistemas de colas por si a alguien le interesa mirarse el tema:

Francesc E.
escribió:> Starling es un sistema de colas desarrollado por Twitter que utiliza

MemCached. …
Está chulo. Tarde o temprano lo probare para alguna cosillas. De momento
uso delayed_jobs para cosas de newsletter. O para trabajos que no tiene
relación directa con la base de datos. En principio, delayed_job tiene
más miga que el sistema que comentas, pero también te permite hacer más
cosas.