Несколько способов сделать это. Для одного проекта, который мы недавно разработали, мы использовали delayed_job , отличный инструмент для асинхронной обработки для Rails. Мы можем настроить запуск задания каждые 5 минут, и после этого задание создаст другое задание после его завершения и т. Д.
Другие инструменты, такие как BackgroundRB, по умолчанию поддерживают работника в стиле cron.
Я часто нахожу, что выполнение раз в минуту грабли для добавления новых заданий в delayed_job работает очень хорошо; Вы можете попробовать это. Он наиболее устойчив и позволяет вам хранить всю логику таймера в Ruby, при этом не требуя уродливых хаков или потенциально разрушаемых настроек, как мой первоначальный пример delayed_job (например, вам нужно очистить рабочую очередь; теперь вам нужно снова сбросить все свои работы, чтобы получить их работает правильно).
С Delayed_job очень легко работать и его можно взломать, поэтому, если вы ищете что-то для начала, это, вероятно, такое же хорошее место, как и любое другое.