Это довольно стандартная техника для подобных ситуаций. Единственный способ немного «раскрутить» его - это использовать Gem, который делает такие вещи для вас из коробки, хотя свернуть свой собственный для простой задачи сохранения состояния не должно быть так сложно.
Сериализация вашего состояния в файл довольно проста, как и десериализация, чтобы получить всю информацию о состоянии, которая вам нужна при перезапуске. Для этого вы можете легко использовать модуль YAML.
При этом может оказаться более практичным использовать что-то вроде демонов для управления фоновым процессом, который время от времени засыпает, чем полагаться на что-то вроде cron для запуска заданий.
Существует также ряд делегаторов фоновых задач управления заданиями, таких как Starling и Workling, которые могут быть лучшим подходом для создания ваших интеграционных сценариев постепенно, а не сразу.