как мне настроить работу cron с рельсами? - PullRequest
2 голосов
/ 15 августа 2010

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

Спасибо.

Ответы [ 4 ]

3 голосов
/ 15 августа 2010

javan-всякий раз, когда есть еще одна хорошая вещь, чтобы посмотреть.

http://github.com/javan/whenever

1 голос
/ 15 августа 2010

Просто реализуйте ваш скрипт, чтобы сделать все, что вам нужно, а затем вызовите его с помощью script/runner из задания cron.

0 * * * * cd /path/to_your/app && RAILS_ENV=production script/runner scripts/my_maintenance_script.rb

Это вызовет my_maintenance_script.rb в контекстепроизводственная среда один раз в час.Довольно голый металл, но он справится с работой.

0 голосов
/ 15 августа 2010

delayed_job хорош, он хранит детали задания в базе данных.

0 голосов
/ 15 августа 2010

rubber , плагин Capistrano для развертывания в облаке, предоставляет набор вспомогательных сценариев для управления заданиями cron. Однако эти скрипты будут работать независимо от резины.

Если вы взяли скрипты "cron-rake", "cron-runner" и "cron-sh" из http://github.com/wr0ngway/rubber/tree/master/lib/generators/vulcanize/templates/base/script/ и поместили их в каталог script / вашего проекта Rails, вам следует идти. Не забудьте сделать их исполняемыми.

Большая часть настоящей работы выполняется в "cron-sh". «cron-rake» - это удобная оболочка для запуска граблей. «cron-runner» - это удобная оболочка для запуска произвольного Ruby (очень похоже на скрипт / runner).

...