2011-04-01 99 views
3

我從cron運行我的rake任務時遇到問題,我把它包裝在shell文件中,當我從控制檯執行這個shell文件時它工作正常。Rails3,從cron運行rake任務

#!/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" 

任何人都知道如何解決這個問題?

回答

0

我想出瞭解決方法 - 從源頭

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 

安裝護欄的設置,你必須刪除「:混帳=>」從寶石「軌道的設置」,在Gemfile中,然後運行

bundle install 

更新Gemfile.lock

之後,我的腳本從cron運行。

0

爲了避免建設創業板,另一種選擇是把寶石內容供應商文件夾,並引用它通過:路徑的Gemfile:

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