【问题标题】:Issue using whenever gem无论何时使用 gem
【发布时间】:2011-05-24 11:59:50
【问题描述】:

我正在尝试在我的应用程序中使用 whenever gem,但我无法在 schedule.rb 中运行 rake 命令。

抛出的错误是

/bin/bash: rake: command not found

我也在使用 bundler,所以我所有的 gem 都被冻结到应用程序中。

【问题讨论】:

    标签: ruby cron rake whenever


    【解决方案1】:

    rake 是否存在于非典型的地方,例如 /usr/local/bin?尝试将其添加到 schedule.rb:

    env :PATH, '/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin'
    

    【讨论】:

      【解决方案2】:

      尝试使用“命令”而不是 rake。我的 rake 在 /usr/local/bin 中,我也不知道如何使它工作。所以这里是一个命令示例,而不是 schedule.rb:

      every 5.minutes do
        command "cd " + `pwd`.chomp + " && RAILS_ENV=#{environment} /usr/local/bin/rake rakefile:rakemethod"
      end
      

      请注意,在此示例中,您还必须传入环境。我认为您只需在调用 schedule.rb 时使用 'whenever --update_crontab --set environment=beta' 即可。

      我让 capistrano 使用when gem 中的capistrano 食谱来完成它(请参阅every 源下的lib dirs)。我必须在我的 capistrano 部署脚本中设置when_environment。

      只要可以默认为生产,所以我只是玩弄它看看。换句话说,如果您只在生产中执行此操作,则可能不需要 RAILS_ENV=#{​​environment}。我有几个暂存环境,所以我传入环境来帮助编写脚本。

      如果我能指定一个不同的 rake 目录来让它与 /usr/local/bin/rake 一起工作就好了!有人在这方面提供帮助吗?

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-08-21
        • 1970-01-01
        • 1970-01-01
        • 2013-03-28
        • 1970-01-01
        • 1970-01-01
        • 2015-06-14
        相关资源
        最近更新 更多