/ / Si uso el programador Heroku, ¿todavía necesito un trabajo retrasado? - Ruby-on-Rails, Heroku, trabajo retrasado

Si uso el programador Heroku, ¿todavía necesito un trabajo retrasado? - Ruby-on-Rails, Heroku, trabajo retrasado

Estoy un poco confundido acerca de esto. Tengo un par de tareas que me gustaría ejecutar de forma asíncrona, por ejemplo, mi integración de sincronización de inventario. Para esto he implementado el trabajo retrasado, pero me doy cuenta de que necesito ejecutar trabajos de rake: trabajar en Heroku para esto. Puedo usar el programador Heroku para ejecutar esta tarea de rake cada 10 minutos. Mi pregunta es; Si creo tareas de rake para ejecutar, es decir, mi método de sincronización de inventario, ¿todavía necesito un trabajo retrasado? Mi entendimiento es que el programador de Heroku inicia "uno fuera de dynos".

En lugar de usar el trabajo retrasado, ¿no podría simplemente iniciar el método de sincronización directamente, ya que de todos modos se usa un dinamómetro separado? ¿Cuál es el valor agregado del trabajo retrasado aquí?

Respuestas

1 para la respuesta № 1

El programador de Heroku reemplaza lo que cron manejaría en un servidor típico. El trabajo retrasado o Sidekiq son para procesar trabajos de forma asíncrona desde su aplicación, no un cronograma programado.

La razón por la que utiliza un trabajador y ejecuta estos trabajos enel back-end es para que su servidor pueda devolver una respuesta tan pronto como sea posible en lugar de hacer que el usuario espere a que finalice un proceso de ejecución potencialmente innecesariamente largo (muchas consultas, correo electrónico saliente, solicitudes de API externas, etc.) .

Por ejemplo, el programador puede ejecutar análisis o actualizaciones desde un script cada hora o día, pero el trabajo retrasado no puede.