Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

概要 railsでコマンドラインスクリプトを各方法はtaskとrunnerと2種類あります。 taskは引数の扱いが微妙で、オプションも扱えません。書き方も独特なためイマイチ好きになれません。またspringも効かないので読み込みも遅いです。 runnerはspringが効くので起動は早めですが引数を自分で解析しないといけません。 Thorというrubyのコマンドライン用のツールがあって引数やオプションを柔軟に扱えて便利です。以前「Thorのコマンドの中でrailsのActiveRecordを使う」という記事を書きましたが、spring経由で起動できないので起動が遅くイマイチでした。 実はその記事を書いた時点でrunnerの存在をすっかり忘れてました。runner経由で起動し、Thorで引数の解析を出来ないか試したらあっさり動きました。 コード スクリプトを置く場所はどこでもOKですが、t
アプリケーション開発をしているとアドホックに実行したいスクリプトがある時や大量のデータを処理したいときなど、バッチ処理を書きたくなる時ってありますよね。 Railsでバッチ処理を書く際によく使われている方法として有名なものが下記の3つだと思います。 rails runner スクリプトとしてバッチを書く rake task ビルドタスクとしてバッチを書く sidekiq 非同期処理としてバッチを書く アプリケーションを新規開発する際、バッチ処理のトリガーをrails runnerを使用するかrake taskを使用するかで迷ったのでまとめてみました。 sidekiq使う場合もバッチ処理内で呼ぶ想定なのでsidekiqでのバッチ処理についてはまとめていません。 先に結論言っておくと『バッチ処理を行うという観点ではrails runnerもrake taskもそこまで変わらない』です。 Rai
このガイドの内容: Railsアプリケーションを作成する方法 モデル、コントローラ、データベースのマイグレーションファイル、および単体テストを作成する方法 開発用サーバーを起動する方法 インタラクティブシェルを利用して、オブジェクトを実験する方法
概要 Web アプリケーションは普通に動かしつつ,裏で batch 処理をがんがん動かすアプリケーションを rails で書いた。こういうアプリケーションでは以下のようなことを各 batch が備えていると非常に捗る。 dryrun モード log は batch ごとに別なファイルに吐かせる 具体的には以下。 # dryrun # log はファイルでなく標準出力に。debug log も吐く。 $ bundle exec rails runner 'BatchExample.dryrun' # exec # log はこのバッチ専用のファイル (=log/batch/batch_example.log) に。debug log は吐かない。 $ bundle exec rails runner 'BatchExample.exec'
###rails runnerとは railsの環境を読み込んだ上で任意のrubyコードが実行できるようです。 batch処理とかの時に使えるんじゃないでしょうか。 helpを見ると以下のように使うらしい。環境も指定できて便利ですね。 % rails runner -h Usage: rails runner [options] [<'Some.ruby(code)'> | <filename.rb>] -e, --environment=name Specifies the environment for the runner to operate under (test/development/production). Default: development -h, --help Show this help message. Examples: rails runner 'puts
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く