cronで実行させると動かなくてはまったときの話です。
まずは手動で動かすために以下のようなコマンドを手動で実行しました。
bundle exec rake aaa:bbbとりあえず動きはしたものの、staging環境の設定で動きませんでした。
調べたところ、RAILS_ENV=stagingをつける必要があるようです。
bundle exec rake aaa:bbb RAILS_ENV=staging手動で動いたのでcronを以下のように設定しました。
crontab -l 0 * * * * cd /home/xxx/app && bundle exec rake aaa:bbb RAILS_ENV=staging時間が来てうまく動かなかったので調べたところ、PATHにrbenv/shimsが入ってないようでした。
cronでrbenvのrubyを使うのにはいくつか方法があるようですが、
他の環境や設定に影響を与えない/bin/bash -lc 'コマンド'でやることにしました。
0 * * * * /bin/bash -lc 'cd /home/xxx/app && bundle exec rake aaa:bbb RAILS_ENV=staging'
RAILS_ENVのところは環境別に書きかわるようにしたかったので、
crontabにつらつら書くのではなくてシェルを作って動的に変わるように対応しました。
参考URL
http://pentan.info/ruby/ror/rake_list.html
http://blog.livedoor.jp/sonots/archives/33204053.html
0 件のコメント:
コメントを投稿