rakeタスク
Railsで定期的に実行したい処理は、lib/tasksにrakeタスクを作って実行することが多い。定期的なメンテナンスやCSVファイルをインポートする際にアプリケーションを起動せず、ターミナルなどのコマンドプロンプトで処理を実行できる。
1、rakeタスクファイルをつくる
$ rails g task task_sample
lib/tasksにrakeタスクにtask_sample.rakeができる。これに処理内容を記述していく
2、処理の記入
namespace :task_sample do
desc "ユーザーのゴミ箱をリセットする(処理内容の説明)"
task :reset_dust_box: :enviroment do #タスク名
User.update_all(dust_box: false) #Userテーブルのdust_boxカラムをfalseにする
end
end
これで処理の記入は完了。例としてゴミ箱を空にする機能にしてみる
あとはターミナルで処理を実行する。
3、ターミナルで実行
$ rake -T #タスクの存在を確認
$ rake task_sample: reset_dust_box #タスクの表示
$ rake task_sample: reset_dust_box #実際にタスクの実行
ターミナル上からタスクの実行ができる。わざわざアプリを起動せずにタスクが実行できるのが利点である。
現場ではよくCSVファイルの読み込みに使うとのことなので、大事だなぁとおもいました。
参考URL
https://qiita.com/yoshito410kam/items/26c3c6e519d4990ed739
https://qiita.com/suzuki_koya/items/787b5562d2ae1a215d94
勉強になりました。ありがとうございました。