&tag(Rails4/バッチ処理);
*目次 [#x544de02]
#contents
*関連ページ [#f74dc668]
*参考情報 [#d9f833a9]

*基本 [#t3affe26]
-lib/tasksの下にファイルを作成し、バッチ処理的な事を行わせる。

*作成方法 [#c996ef77]
-config/application.rbを編集し、autoload_pathsを設定しておく
 config.autoload_paths += %W(#{config.root}/lib)  # 追加
-lib/tasks/hello_task.rbを作成する
#pre{{
class Tasks::HelloTask
  def self.execute
    print "Hello World!! env=#{Rails.env}\n"
  end
end
}}
-実行する
 bundle exec rails runner "Tasks::HelloTask.execute"

*疑問点 [#d15b5c61]
**デフォルトの環境はdevelopmentじゃないのか? [#wa842420]
-bundle exec railsを実行するとデフォルトはdevelopmentっぽいのだが
#pre{{
 $ bundle exec rails runner --help
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.
}}
-実際にHelloTaskを実行すると、productionと表示される。なぜかと思ってしらべてみると、.zshrcで、RACK_ENVを設定していたせいだった。
 export RACK_ENV="production"
-これを削除したらもどった。

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS