Cómo programar tareas con Ruby on Rails

Programar tareas con Ruby on Rails

"No puede haber crisis la semana que viene. Mi agenda ya está llena". Esta descarada cita de Henry Kissinger explica la importancia de tener una agenda. En la vida o en la tecnología, los horarios son importantes. Cuando se trata de Ruby on Rails, que prefiere la convención a la configuración, un programador es imprescindible. El trabajo de programación puede definirse como "un proceso de decisión para asignar recursos entre distintas tareas". Se trata básicamente de una función que permite realizar tareas rutinarias como parte de una secuencia o durante un tiempo predefinido, como realizar operaciones de mantenimiento o recuperar canales RSS. Estas tareas programadas, que se realizan en segundo plano, son ejecutadas por "trabajadores". ¿Cuáles son las mejores formas de programar una tarea en un entorno Rails? Normalmente, los desarrolladores pueden utilizar cron jobs específicos de la aplicación para ejecutar las tareas, pero los cron jobs sirven para programar cosas, no para ejecutarlas. Funcionan bien en un único servidor, pero si se quiere escalar a varios, no funcionan tan bien. También son difíciles de depurar y consumen mucho tiempo. Entonces, ¿cómo puede asegurarse de que su programación funciona bien y sin ninguna dependencia o demasiada sintaxis. ¡Whenever' viene a tu rescate! Comprueba cómo la gema 'whenever' puede ayudarte a crear cron jobs con Ruby.

¿Qué es Whenever gem?

Se utiliza para escribir y desplegar trabajos de maíz con una sintaxis clara.

¿Cómo instalarlo?

gem 'whenever', :require => false
Después de la instalación tenemos que escribir "wheneverize ." en la consola y automáticamente se creará el archivo schedule.rb dentro de la carpeta config. Dentro del archivo schedule.rb podemos programar la función basada en hora, fecha, mes, etc.. Ej:
every 1.day, :at => '10:00 am' do rake "sow:events_reminder_mail", :environment => :development end
Antes de programar la acción Dentro de la carpeta lib tenemos que crear una carpeta de tareas, dentro de la carpeta de tareas podemos crear un archivo rake.
rake "sow:events_reminder_mail", --> rake nombre de archivo con nombre de tarea :environment => :development ---> Tenemos que especificar el entorno
Dentro del archivo rake podemos dar la condicion y usar el User Mailier para enviar el correo.Ese User Malier enviara el correo basado en el tiempo de programacion,fecha,mes,etc.. Ej:()
desc "Eventos inactivos" task :eventos_inactivos => :entorno do @eventos = Evento.where(:fecha_final=>Fecha.hoy-1.días) @events.each do |evento| event.update_attributes(:estado_publicado=>false,:fecha_inactiva=>Fecha.hoy) end end
Referencia : https://github.com/javan/whenever

Suscríbete para recibir las últimas actualizaciones

Artículos Relacionados

Acerca del autor de la publicación

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *


es_ESSpanish