29th Thu
RailsCronプラグインを使う
This article was migrated from http://rails.office.drecom.jp/takiuchi/archive/55
RailsCronプラグインを利用すると、定期的に繰り返される処理を簡単に実装する事ができます。 普通はこのような事を実現する為に cron を使う事が多いと思いますが、Railsアプリケーションは起動しっぱなしで使う事が多いので、こういう方法もありですね。
使い方はいたって簡単です。まずはプラグインをインストールします。
./script/plugin install -c http://svn.kylemaxwell.com/rails_cron/trunk/続いて、lib/cron.rb を記述します。
module Cron
def Cron.create_do_something_cron
RailsCron.create(
:command => "Cron.do_something",
:start => Time.now,
:every => 10.second)
end
def Cron.do_something
# some works
end
end
続いて、RailsCronを初期化します。
rake cron_startこれによって、rails_cronsテーブルが存在しない場合は作成され、ウェブサーバが再起動します。 そして実際にRailsCronオブジェクトを作成及び登録します。
./script/console >> Cron.create_do_something_cronRailsCronはActiveRecordオブジェクトなので、以上でDBに登録されます。
RailsCronプラグインを導入すると、下記のようなrakeターゲットが追加されます。
- cron_start -- RailsCronをデーモンとして起動
- cron_foreground -- RailsCronをフォアグラウンドで起動
- cron_stop -- 正常(Graceful)に停止
- cron_kill -- プロセスをkill
- cron_graceful -- 正常に再起動
- cron_restart -- プロセスをkillして再起動
- cron_status -- ステータスを表示
cron を実行するユーザを指定したい場合は、RAILSCRON_SUDO環境変数を設定すると良いようです。詳細はこの辺に書かれています。 また、production環境で実行する場合は、RAILS_ENVの指定を忘れないように注意する必要があります。
This article was migrated from http://rails.office.drecom.jp/takiuchi/archive/55
posted by
genki on Thu 29 Jun 2006 at 18:02 with 0 comments