Wheneverを使ってRakeタスクの実行時間を記録する方法
Rails のプロジェクトで Rakeタスクの実行時間を記録する時に whenever を使って
config/schedule.rb
job_type :rbenv_rake, %q{PATH="/opt/rbenv/bin:/usr/local/bin:$PATH"; eval "$(rbenv init -)"; cd :path && :environment_variable=:environment nice -n 10 :bundle_command rake :task --silent :output}
set :output, "log/cron_foo.log"
every "10 1 1 * *" do
rbenv_rake "foo:update"
end
のような書き方をして、foo:update
の中で開始時と終了直前に現在時刻を吐こうと考えているのですが、whenever
から呼び出すときだけログに開始時刻と終了時刻を記録するもっとすっきりとした方法はありますか?
全てのRakeタスクに同様の処理を書くのはDRYではなく少し気持ちが悪かったのでなにか良い案があれば教えて下さい。
なければスクリプト内で時刻を標準出力に出す方法を使っていこうと思います。
環境
サーバー上ではCentOSを使用していますが、Ubuntu, CentOSどちらでも使える方法があれば嬉しいです。