每当gem不会更新crontab任务时

all*_*lar 4 capistrano ruby-on-rails rvm ruby-1.9.2 whenever-capistrano

我一直在Slicehost的2岁以上的切片上使用随时随地的宝石.然而,我不能在我的新片上做同样的事情.

主要区别在于我现在在我的MBP和切片上运行RVM.我也在运行Rails 3.我有Rubygems v 1.5.0和最新版本的RVM,Ruby 1.9.2p136,Capistrano以及其他所有包.

我已经尝试了一百万件事,阅读了所有的文档,截至目前我正在使用随时随地的0.6版本.我还查看了关于SO和Google相关主题的所有问题.

以下是deploy.rb中的代码:

namespace :deploy do
  ...
  desc "Update the crontab file"
  task :update_crontab, :roles => :db do
    run "cd #{release_path} && whenever --update-crontab #{application}"
  end   
end

after 'deploy:update_code', 'deploy:update_crontab'
Run Code Online (Sandbox Code Playgroud)

以下是运行'cap deploy'后出现的错误消息

failed: "rvm_path=$HOME/.rvm/ $HOME/.rvm/bin/rvm-shell '1.9.2' -c 'cd /home/deploy/public_html/lasource/releases/20110209201551 && /home/deploy/.rvm/gems/ruby-1.9.2-p136/bin/whenever --write-crontab'" on lasource.ohlalaweb.com
Run Code Online (Sandbox Code Playgroud)

欢迎任何建议.

顺便说一下,capistrano的日志在哪里?

由于Simone的建议添加了'捆绑exec',我设法完成了帽部署例程,因为一切顺利.然而,新问题是我的crontab文件仍然没有任务,并且没有使用其4个任务创建我的部分.

Sim*_*tti 10

如果使用Rails 3,请记住执行命令bundle exec.

namespace :deploy do
  desc "Update the crontab file"
  task :update_crontab, :roles => :app, :except => { :no_release => true } do
    run "cd #{release_path} && bundle exec whenever --update-crontab #{application}"
  end
end
Run Code Online (Sandbox Code Playgroud)

  • 添加schedule.rb文件,以便我们检查内容. (2认同)