Ruby on Rails

トップ > チップス > Ruby on Rails
2015-03-08, rails

処理を決まった時間に実行する

やっぱりcrontabを使うのが堅実な方法のようですね。通常のrubyスクリプトやrakeのタスクを定義して、それらを呼び出す方法でも構わないのですが、wheneverというgemを使う方法を紹介します。

まずはgemのインストール。

./Gemfile
gem 'whenever', :require => false

以下のコマンドでconfig.schedule.rbという設定ファイルが生成されます。

$ wheneverize .

以下は設定例です。2分おきにMyModelのhelloというクラスメソッドを呼び出します。

config/schedule.rb
env :PATH, ENV['PATH']

every 2.minutes do
  runner "MyModel.hello"
end

以下のコマンドでcron設定用に書き出された内容を確認することができます。

$ whenever

実際に設定を書き込むにはオプションの指定が必要です。

$ whenever -i

参考URL

この記事は役に立ちましたか?