Rails3, запуск граблей из cron - PullRequest
3 голосов
/ 02 апреля 2011

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

#!/bin/sh

if ps -ef | grep -v grep | grep create_all_accounts ; then
    exit 0
else
    cd /home/prosoftstudio/www/prosoftstudio_egabinet && /home/prosoftstudio/www/.ruby/gems/1.8/bin/rake gabinet:create_all_accounts RAILS_ENV=production --trace
    exit 0
fi

Запись в crontab выглядит следующим образом (Я установил PATH и GEM_PATH)

PATH=/home/prosoftstudio/www/.python/bin:/usr/local/python2.6/bin:/home/prosoftstudio/www/.ruby/gems/1.8/bin/:/usr/local/ruby1.8/bin:/usr/local/bin:/usr/bin:/bin:/us$
GEM_PATH=/home/prosoftstudio/www/.ruby/gems/1.8:/home/prosoftstudio/www/.ruby/gems/1.8/bundler/gems:/usr/lib/ruby/gems/1.8/
*/1 * * * * /home/prosoftstudio/www/cron_create_accounts.sh > cron_log.txt 2>&1

Вывод, который я получаю:

rake aborted!
git://github.com/100hz/rails-settings.git (at master) is not checked out. Please run `bundle install`

Похоже, он не может найти драгоценные камни, установленные с

gem "rails-settings", :git => "git://github.com/100hz/rails-settings.git"

Anyoneзнаете как это исправить?

Ответы [ 2 ]

0 голосов
/ 26 октября 2012

Чтобы избежать создания драгоценного камня, другой вариант - поместить содержимое драгоценного камня в папку поставщика и ссылаться на него через: путь в Gemfile:

gem "my_gem", :path => "vendor/my_gem"

0 голосов
/ 02 апреля 2011

Я придумал обходной путь - установка rails-настроек из источника

wget https://github.com/100hz/rails-settings/zipball/master --no-check-certificate
unzip 100hz-rails-settings-v0.1.1-0-g330b958.zip
cd 100hz-rails-settings-330b958/
gem build rails-settings.gemspec
gem install rails-settings-0.1.1.gem

и вы должны удалить ": git =>" из gem "rails-settings" в Gemfile и запустить

bundle install

для обновления Gemfile.lock

После этого мой скрипт запускается из cron.

...