Los observadores y las devoluciones de llamada en los modelos Rails operan en la misma secuencia y bloquean la solicitud hasta que regresen.¿Cómo se pueden manejar los observadores y las devoluciones de llamada de Rails de forma asíncrona (en un hilo diferente)?
Por ejemplo, si tengo un modelo de foto y pongo un trabajo de cambio de tamaño en la devolución de llamada after_create u observador, la solicitud no finaliza hasta que se realiza una entrada en la cola (que a veces puede ser lenta si estoy usando Amazon SQS para hacer cola).
Lo mismo vale para los controles Callbacks on Rails. Si tengo que ejecutar tareas de mantenimiento como administración de caché o análisis de tienda, la solicitud no finaliza hasta que finaliza la devolución de llamada.
¿Existe alguna forma de que Rails ejecute el código dentro de una devolución de llamada (Modelo o Controlador) u observador en un hilo diferente para que la solicitud no se bloquee?
Gracias, buena idea. Utilizo Amazon SQS para tercerizar la funcionalidad de delayyed_jobs o resque para no tener que hacer ping a mi base de datos constantemente mientras uso el método demorado_job o setup redis mientras uso resque. Amazon SQS funciona de manera brillante, pero a veces hay un pequeño retraso para volver a conectarse al servidor SQS. – Sid
También consulte [sidekiq] (https://github.com/mperham/sidekiq), que es el más rápido, y ofrece soporte comercial si lo necesita. –