Самое простое - написать грабли, которые выполняют эту работу, а затем использовать любую систему планирования, которую использует ваш хост (cron).
Альтернативой является использование delayed_job , которое позволяет перенести работу в фоновый процесс. Хотя отложенная работа не совсем подходит для чего-то подобного, она вполне может это сделать. Если ваш рельсовый процесс начинается, вы добавляете новое задание для запуска в 12:00. И выполнение задания переносит задание.
Приятной особенностью отложенной работы является то, что ваш код выполняется в контексте rails-процесса, поэтому вы можете использовать методы, которые у вас уже есть. Также хорошо: задания хранятся в базе данных, поэтому вы можете иметь обзор.