• 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30

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_cron
RailsCronは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 Png genki on Thu 29 Jun 2006 at 18:02

Comments:

or Preview
Social Bookmarks
  • Delicious
  • B_entry32
  • Clip_16_12_w
Services from s21g
twpro(ツイプロ)
Twitterプロフィールを快適検索
地価2009
土地の値段を調べてみよう
MyRestaurant
自分だけのレストラン手帳
Formula
ブログに数式を埋め込める数式コミュニティ