【问题标题】:Whenever gem won't update crontab tasks每当 gem 不会更新 crontab 任务时
【发布时间】:2011-06-24 10:07:05
【问题描述】:

我在 Slicehost 的 2 岁以上的切片上一直使用when gem。但是我不能在我的新切片上做同样的事情。

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

我已经尝试了一百万件事情,阅读了所有文档,到目前为止,我正在使用无论何时 gem 版本 0.6.2。我还查看了关于 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'

这是我在运行“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

欢迎提出任何建议。

顺便问一下,capistrano 原木在哪里?

在 Simone 的建议下添加了“bundle exec”后,我设法完成了 cap 部署例程,因为一切顺利。然而,新问题是我的 crontab 文件仍然没有任务,并且没有创建包含 4 个任务的部分。

【问题讨论】:

    标签: ruby-on-rails rvm capistrano ruby-1.9.2 whenever-capistrano


    【解决方案1】:

    如果使用 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
    

    【讨论】:

    • 嗨西蒙娜。我听从了你的建议,又向前迈进了一步。我编辑了我的问题以显示我现在收到的新错误消息。
    • 经过一些调整后,我的 cap deploy 例程成功完成。它告诉我它正在更新 crontab,但没有任何反应。 crontab -e 仍然显示一个空文件。
    • 添加您的 schedule.rb 文件,以便我们检查内容。
    • 感谢西蒙娜的努力。我决定暂时放弃这个。我只是手动设置了我的 cron 选项卡。他们没有太大变化,所以没关系。我稍后会重新讨论这个问题。我需要优先考虑。干杯
    • 我遇到了类似的问题,但 Capistrano 输出中没有错误。您是否尝试过在命令行的生产环境中运行RAILS_ENV=production bundle exec whenever -w
    【解决方案2】:

    根据everyone的README:

    If a :path is not set it will default to the directory in which whenever was executed.

    因此,您不必在文件夹中 cd。另外,您是否尝试过使用其他调用 shell 命令的方式?我正在使用反引号,它在我的环境中工作

    namespace :deploy do
      desc "Update the crontab file"
      task update_crontab: :environment do
        `whenever -i cellar`
      end
    end
    

    【讨论】:

      猜你喜欢
      • 2013-01-12
      • 2021-07-18
      • 1970-01-01
      • 2021-09-22
      • 1970-01-01
      • 1970-01-01
      • 2013-11-12
      • 2017-10-19
      • 2011-06-04
      相关资源
      最近更新 更多