RailsのCron処理に「Whenever」
Ruby on Railsにおけるバックグラウンド処理で有名なものと言えばBackgrounDRbやBackground-fuになるだろう。使ってみた感想としてはどちらも癖があって、何となくうまくいかない。プロセスが途中で消えたりすることもある。
分かりやすい記述でCronが書ける
非同期的にキックするような処理が必要な場合は難しいが、単純なCron処理であればLinux標準のCronが最も安定している。それを手軽に使えるのがWheneverだ。
今回紹介するオープンソース・ソフトウェアはWhenever、Railsアプリケーションに対応したCron処理ライブラリだ。
WheneverはRailsアプリケーションとCrontabの橋渡しをするソフトウェアだ。Railsアプリケーション内でwheneverizeコマンドを実行すると設定ファイルが出力される。ここではevery 3.hoursのような書き方でアクションを定義することができる。
Crontab形式に修正して出力する
アクションとしてはモデルのメソッドを実行したり、rakeやShellコマンドを実行することができる。そして設定が終わればwheneverコマンドを実行する。そうするとCrontabに記述すべき設定内容が出力される。
「–update-crontab」を付ければcrontabファイルをアップデートすることもできる。Wheneverを使えばCronをより分かりやすく管理することができるだろう。定期的なバックグラウンド処理のお供に利用してみて欲しい。
javan’s whenever at master - GitHub