私は1つの仕事をしてい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"
これは正常に機能し、どちらかの環境をデプロイするとジョブが作成されます。問題は、両方を1つのジョブと見なすと、最後にデプロイされた環境によって上書きされることです。
# 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
同じサーバー上の2つの別々の環境に同じcronジョブを追加するための賢明な方法は何ですか?