rakeタスクとは
railsに標準装備されているrake routesなどコマンドライン上でアプリケーションの機能を実行するもの
自分でオリジナルのrakeタスクを作成することもできる。
定期的に実行したい機能などをrakeタスクとして作成しておくことで効率的な運用が可能になる。
定期的に実行したい処理はlib/tasks以下のディレクトリに作成することが多い
rakeタスクの実行
以下のコードはユーザーが入店したかどうかを判断する"enter_flag"というカラムを全てfalseにするrakeタスクである。
lib/tasks/user_chacker.rb
namespace :user do
desc "ユーザーの入店情報をリセットする"
task reset_entered_flag: :environment do
User.update_all(entered_flag: false)
end
end
このrakeタスクを実行するにはターミナル上で
ターミナル
rake user:reset_entered_flag
と打ち込む
rake [namespeceの名前]:[taskの名前]のように記述して実行します。
毎日・毎週特定の曜日・3日おきなど、特定の周期でrakeタスクを自動実行したい場合は、
wheneverというgemを組み合わせて実行する。