ひげろぐ

技術者として仕事人としての思うところや覚え書きやらです
Home      Profile      Works     

RailsアプリでActiveRecordを使ったバッチ処理 その2

スポンサードリンク

script/runnerを使うといいようだ。
これは引数の文字列をRubyスクリプトとして解釈し、Rails環境で実行するというもの。

script/runnerによって

ruby script/runner 'p Onsen.count'

といった具合にコマンドラインからモデルを使った処理を実行できる。
コントローラは使えません。(でした)

対象にする環境は-eオプションを使ってdevelopment,production,testをそれぞれ指定できる。
何も指定しない場合のデフォルトはdevelopment。
ゆえにproduction環境で実行したければ以下のごとし。

ruby script/runner -e production 'p Onsen.count'

ちなみに多少複雑なバッチ処理は当然ファイルに書いたスクリプトから読ませたい。
しかしそのために普通にパイプとか使っても駄目だったりする。

解は以下参照。

ActiveRecord と ActiveSupport を使ってコマンドラインアプリを作る – ma2の日記

ruby script/runner 'eval(IO.readlines("hoge.rb").join)'

それにしてもやっぱhogeは基本。
自分もhoge.rbでファイルから実行するテストをしていたので、サンプルコードまんま実行できたw

追記

RailsアプリでActiveRecordを使ったバッチ処理 その3書きました。
みんないろいろ工夫している模様。

関連記事

  1. RailsアプリでActiveRecordを使ったバッチ処理

コメント




copyright brass.to | powered by WordPress ME