Estamos desarrollando una aplicación web en la que con aproximadamente el 50% de las solicitudes de escritura terminamos empujando datos a múltiples almacenes de datos e insertando y actualizando una cantidad significativa de registros en esos almacenes de datos . Para mejorar el tiempo de respuesta, queremos procesar dichas solicitudes de forma asincrónica en segundo plano.Resque o Gearman: elegir la herramienta adecuada para trabajos en segundo plano
Nuestra aplicación web se está escribiendo en Ruby on Rails.
Dos soluciones a las que me inclino son Resque y Gearman.
Resque: Más información aquí: http://github.com/blog/542-introducing-resque Resque parece muy adecuado para Ruby, y está específicamente destinado para el procesamiento de trabajos en segundo plano. "Los trabajos en segundo plano pueden ser cualquier clase o módulo de Ruby que responda. Sus clases existentes se pueden convertir fácilmente a trabajos en segundo plano o puede crear nuevas clases específicamente para hacer el trabajo".
Gearman: No está específicamente destinado solo para trabajos en segundo plano para el procesamiento asíncrono, pero eso es algo que definitivamente puede hacer. Aparentemente más robusto, o eso parece. Otra ventaja de Gearman es que, aunque su código de cliente podría estar en Ruby, el código de trabajador podría estar en, digamos, PHP. Aunque ahora mismo somos completamente la aplicación Ruby on Rails, quién sabe si en el futuro podríamos usar PHP u otra cosa dependiendo del trabajo que tenga entre manos.
¿Qué recomendarías? ¿Tienes experiencia con cualquiera de los dos? ¿Qué desafíos de producción en la vida real debo tener en cuenta al elegir entre los dos? ¿Y estoy incluso comparando manzana con manzana aquí?
No estoy de acuerdo con el estado cerrado. La Q está bien formateada y con detalles suficientes para proporcionar una respuesta adecuada. Los debates son bienvenidos y deberían proporcionar más de una vista a la solución. – michaelbn