2015-06-15 92 views
0

我正在使用每當寶石安排我的網站上的一些工作。 目前我正在開發環境。每當寶石不工作時,Rails 4

我已經安裝了指導建議的寶石。

schedule.rb

every 2.minutes do 

    rake "vip_recomend:give" 
end 

在LIB /任務/ vip_recomend.rake

namespace :vip_recomend do 
     desc "Give vip recomend to ads that are in waiting list" 

     task give: :environment do 

     girls = Girl.all 
      girls.each do |girl|    
       BlacklistMailer.blacklisted(girl).deliver      
      end 

      user = User.first 
      UserMailer.password_reset(user).deliver 

     end 
    end 

然後我嘗試這些命令對應:

whenever --set environment=development --update-crontab 

whenever --update-crontab 

什麼也沒有發生。

然後我檢查是否cron是更新了我的東西,這一點:

crontab -l 

輸出:

# Begin Whenever generated tasks for: /home/my_host/blogs/config/schedule.rb 
* * * * * /bin/bash -l -c 'cd /home/my_host/blogs && RAILS_ENV=development bundle exec rake vip_recomend:give --silent >> /log/cron_log.log 2>&1' 

# End Whenever generated tasks for: /home/my_host/blogs/config/schedule.rb 

當我試圖從它的工作原理控制檯運行rake任務。

對此有何幫助? 謝謝。

更新1

當schedule.rb我有這個

env :PATH, ENV['PATH'] 

在cron錯誤日誌我得到這個消息。

/opt/alt/ruby21/lib64/ruby/2.1.0/rubygems/dependency.rb:298:in `to_specs': Could not find 'bundler' (>= 0) among 8 total gem(s) (Gem::LoadError) 
    from /opt/alt/ruby21/lib64/ruby/2.1.0/rubygems/dependency.rb:309:in `to_spec' 
    from /opt/alt/ruby21/lib64/ruby/2.1.0/rubygems/core_ext/kernel_gem.rb:53:in `gem' 
    from /home/individualki/rubyvenv/ror/2.1/bin/bundle:22:in `<main>' 

回答

1

SOLUTION:

我改變每當到魯弗斯調度。

在此之前,我嘗試了所有可能的解決方案來解決我的問題。 我認爲問題出現在共享主機上的Ruby安裝中,但我沒有時間去檢查它。

3

嘗試按以下格式在schedule.rb寫你的工作,與指定的環境:

every 2.minutes do 
    rake "vip_recomend:give", :environment => 'development' 
end 

然後轉到您的命令提示符下,從您的應用程序目錄中,請嘗試以下操作:

$ whenever --update-crontab 
$ whenever 

您應該看到,無論何時使用ENV=DEVELOPMENT現在列出您的任務。

+0

仍然不工作... – Edgars

+0

我添加':output =>'log/cron.log',現在我得到這個/ bin/bash:bundle:命令沒有在cron.log中找到 – Edgars

+0

你可以嘗試運行'bundle更新'從你的命令提示符? – MarsAtomic

1

PATH問題可能是,通過將以下的schedule.rb的頂部,確保正確的路徑捆綁

env :PATH, ENV['PATH'] 

或者嘗試添加以下,如果上面沒有一個工作。

env :GEM_PATH, ENV['GEM_PATH'] 
+0

謝謝,但仍然有一些問題。還用一些錯誤消息更新了我的問題。 – Edgars

+0

當我想使用SSH命令使用rails命令時,我必須執行這個命令'source ruby​​venv/ror/2.1/bin/activate' – Edgars

+0

似乎沒有找到bundle gem,請嘗試使用'gem install bundler'並閱讀form [here] (http://stackoverflow.com/questions/6166081/could-not-find-bundler-error) –