Сохранение устойчивости при использовании граблей - PullRequest
1 голос
/ 10 июня 2009

Я запускаю несколько базовых сценариев непрерывной интеграции в виде задач rake, используя cron для автоматизации их выполнения.

Однако я бы хотел поддерживать некоторую форму состояния между задачами. Я подумал о том, чтобы просто записать информацию в файл и прочитать ее обратно.

Есть ли более "рубиновый" способ сделать это?

1 Ответ

3 голосов
/ 11 июня 2009

Это довольно стандартная техника для подобных ситуаций. Единственный способ немного «раскрутить» его - это использовать Gem, который делает такие вещи для вас из коробки, хотя свернуть свой собственный для простой задачи сохранения состояния не должно быть так сложно.

Сериализация вашего состояния в файл довольно проста, как и десериализация, чтобы получить всю информацию о состоянии, которая вам нужна при перезапуске. Для этого вы можете легко использовать модуль YAML.

При этом может оказаться более практичным использовать что-то вроде демонов для управления фоновым процессом, который время от времени засыпает, чем полагаться на что-то вроде cron для запуска заданий.

Существует также ряд делегаторов фоновых задач управления заданиями, таких как Starling и Workling, которые могут быть лучшим подходом для создания ваших интеграционных сценариев постепенно, а не сразу.

...