Ruby on Railsにおけるバックグラウンド処理で有名なものと言えばBackgrounDRbやBackground-fuになるだろう。使ってみた感想としてはどちらも癖があって、何となくうまくいかない。プロセスが途中で消えたりすることもある。

ピクチャ 75.png

分かりやすい記述でCronが書ける

 

非同期的にキックするような処理が必要な場合は難しいが、単純なCron処理であればLinux標準のCronが最も安定している。それを手軽に使えるのがWheneverだ。

今回紹介するオープンソース・ソフトウェアはWhenever、Railsアプリケーションに対応したCron処理ライブラリだ。

WheneverはRailsアプリケーションとCrontabの橋渡しをするソフトウェアだ。Railsアプリケーション内でwheneverizeコマンドを実行すると設定ファイルが出力される。ここではevery 3.hoursのような書き方でアクションを定義することができる。

ピクチャ 74.png

Crontab形式に修正して出力する

 

アクションとしてはモデルのメソッドを実行したり、rakeやShellコマンドを実行することができる。そして設定が終わればwheneverコマンドを実行する。そうするとCrontabに記述すべき設定内容が出力される。

「–update-crontab」を付ければcrontabファイルをアップデートすることもできる。Wheneverを使えばCronをより分かりやすく管理することができるだろう。定期的なバックグラウンド処理のお供に利用してみて欲しい。

 

javan’s whenever at master - GitHub

 http://github.com/javan/whenever/tree/master