トップ «前の日記(2010/04/11 (日) ) 最新 次の日記(2010/04/13 (火) )» 編集 RSS feed

HsbtDiary


2010/04/12 (月) [長年日記]

[ATOK] ATOK 定額制 Mac 版がアップデート

すわっ、ATOK 2010 の Mac 版が事前リリースされたのか!と思ったらただの bugfix だった。

ぱっと見た感じだと致命的な物は見あたらないけど、とりあえずアップデートしておいた。

[gem][ruby][rubygem] whenever

皆さんこんばんは、今日の gem コーナーの時間です。今日は rails の deploy と同時に cron へタスクを登録することが出来る whenever のご紹介。

用途としてはこんな感じのことをやりたい場合に使える。

  • Railsのコードを直接叩いて処理をしたい
  • rake タスクを実行したい
  • スクリプトを実行したい

まあ、主に 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 やコード本体も読んでみると良いと思います。

[Life] 今日の(ry

DSC03292

ヘルシオで作るブリの照り焼き。ごちそうさまでした!