【问题标题】:How can I create identical cron jobs for staging and production with the whenever gem?如何使用when gem 创建相同的cron 作业以进行登台和生产?
【发布时间】:2011-10-02 19:50:46
【问题描述】:

我在schedule.rb有一份工作:

set :output, File.expand_path('../log/whenever.log', __FILE__)
set :job_template, "bash -l -c 'source ~/.bashrc ; :job'"

every 1.day, :at => '12:01 am' do
  runner "MyModel.do_something"
end

在我的暂存部署 (bash) 脚本中,我将这一行写入 cron:

ssh $SERVER "cd $DEPLOY_TO && whenever --set environment=staging -w"

生产部署脚本中的这一行:

ssh $SERVER "cd $DEPLOY_TO && whenever --set environment=production -w"

这可以正常工作,并在我部署任一环境时创建工作。问题是,每当将它们都视为一项工作时,它就会被上次部署的环境覆盖:

# Begin Whenever generated tasks for: /Users/simon/apps/myapp/staging/config/schedule.rb
1 0 * * * bash -l -c 'source ~/.bashrc ; cd /Users/simon/apps/myapp/staging && script/rails runner -e staging 'MyModel.do_something' >> /Users/simon/apps/myapp/staging/log/whenever.log 2>&1'

# End Whenever generated tasks for: /Users/simon/apps/myapp/staging/config/schedule.rb

还有……

# Begin Whenever generated tasks for: /Users/simon/apps/myapp/production/config/schedule.rb
1 0 * * * bash -l -c 'source ~/.bashrc ; cd /Users/simon/apps/myapp/production && script/rails runner -e production 'MyModel.do_something' >> /Users/simon/apps/myapp/production/log/whenever.log 2>&1'

# End Whenever generated tasks for: /Users/simon/apps/myapp/production/config/schedule.rb

在同一台服务器上为两个不同的环境添加相同的 cron 作业的明智方法是什么?

【问题讨论】:

    标签: ruby-on-rails ruby whenever


    【解决方案1】:

    您可以使用类似于以下内容的方式为您的任务命名空间:

    # Whenever
    set :whenever_environment, defer { stage }
    set :whenever_identifier, defer { "#{application}-#{stage}" }
    require "whenever/capistrano"
    

    在上面的例子中,stage 是包含环境的变量。将其更改为您正在使用的任何内容。

    https://github.com/javan/wheneverCapistrano 集成 部分会更详细地介绍,如果您需要的话。

    【讨论】:

      【解决方案2】:

      对于 capistrano-v3-integrationrequire "whenever/capistrano" 添加到 Capfile 并将 set :whenever_identifier, ->{ "#{fetch(:application)}_#{fetch(:stage)}" } 设置为 config/deploy.rb

      【讨论】:

        猜你喜欢
        • 2013-09-14
        • 2015-02-05
        • 2013-03-18
        • 1970-01-01
        • 2016-09-27
        相关资源
        最近更新 更多