Quiero crear eventos recurrentes usando la gema Ice Cube en Rails - mi pregunta es, ¿cómo puedo usar esto de manera correcta o eficiente? reglas para desencadenar eventos reales?Manera correcta de usar eventos creados con Ice Cube in Rails usando un trabajo cron diario
Un ejemplo de esto sería una factura recurrente.
Supongamos que tengo una repetición de Ice Cube una vez por semana y la guardé en una fila de factura recurrente con to_yaml. Ahora tengo una fila en la base de datos con una regla de periodicidad serializada. La única forma en que me imagino usar esto es recorrer todas y cada una de las filas de la base de datos, deserializar las reglas de recurrencia guardadas y verificar si necesita ejecutarse hoy con schedule.occurs_on? (Date.new) - esto luego se pondría en una tarea programada que se ejecuta diariamente:
items = RecurringItem.find(:all)
items.each do |item|
schedule = Schedule.from_yaml(item.schedule_yaml)
if schedule.occurs_on?(Date.new)
#if today is a recurrence, do stuff!
end
end
Esto se ve terriblemente ineficiente para mí - pero podría estar haciendo completamente mal. ¿No hay una mejor manera de usar Ice Cube?
Intenta mirar el momento, es bastante simple de usar y funciona. https://github.com/javan/whenever – MatthewFord
No estoy familiarizado con Ice Cube pero usamos Resque Scheduler en mi trabajo de forma recurrente (juego de palabras). Envíame un correo electrónico si tienes la tentación de probarlo y necesitas ayuda. – Tass