すわっ、ATOK 2010 の Mac 版が事前リリースされたのか!と思ったらただの bugfix だった。
ぱっと見た感じだと致命的な物は見あたらないけど、とりあえずアップデートしておいた。
皆さんこんばんは、今日の gem コーナーの時間です。今日は rails の deploy と同時に cron へタスクを登録することが出来る whenever のご紹介。
用途としてはこんな感じのことをやりたい場合に使える。
まあ、主に update と delete になるかな。使い方は毎度おなじみの
$ gem install whatever
してから RAILS_ROOT で
$ whateverize
を実行する。これで config/schedule.rb が作成されるので、Railsのクラスメソッドを実行したい場合は下のような内容にする。まあ、意味はだいたいわかるよね。
set :output, Rails.root.join('logs/cron.log').to_s every 1.day do runner "SampleModel.destroy_all(:created_at.lt => 6.months.ago)" end
この状態で whenever コマンドを実行すると crontab 形式の文字列が出力されるので cap deploy に書き込む前に確認すると良い。上の whenever だと下のような結果となる。
0 0 * * * /Users/hsbt/my/app/script/runner -e production "SampleModel.destroy_all(:created_at.lt => 6.months.ago)" >> /Users/hsbt/my/app/logs/cron.log 2>&1
あとは github の README にある Capistrano integration の内容を Capfile に書いて cap deploy すると cron に登録される。もちろん、実行ユーザーを cron グループに登録するのを忘れずに。
もうちょい細かい指定もできるので、気になる人は github の README やコード本体も読んでみると良いと思います。