【Rails初学者メモ】rake -Tで自作タスクを確認してみました。
Railsで学習中、定期的な処理などの為に「rakeタスク」を使うと便利と知り、
rake -T
で確認するということを行いました。
rakeタスクの追加
まずは lib/tasks
フォルダに .rake
ファイルを作成。
たとえば以下のようなコードを lib/tasks/notification.rake
に追加しました。
namespace :notification do
desc '利用者にメールを送付する'
task send_emails_from_admin: :environment do
p '初めてのrake task'
end
end
ポイントは desc
を書くこと!これがないと rake -T
に表示されない。
rake -T でタスクを確認
ターミナルで rake -T を実行する。
rake notification:send_emails_from_admin # 利用者にメールを送付する
表示されました。
これで自分のタスクが、他の開発者にもわかりやすくなります。
タスクを実行してみる
$ rails notification:send_emails_from_admin
実行すると、以下のような出力がありました。
"初めてのrake task"
無事に出力されています。
rakeタスク使用場面
- 定期的にバッチ処理を実行したいとき(例:毎日メール送信)
- 管理者が手動で特別な処理をしたいとき(例:特定ユーザーのデータ一括更新)
- 手作業やコントローラー経由ではやりにくい処理も、rakeタスクにしておくと便利らしい
まとめ
- lib/tasks/*.rake にコードを書くと、rakeタスクが追加される
- desc を書かないと rake -T に表示されない
- namespace でタスクをグルーピングできる
- rails [タスク名] で実行できる(rakeでもOK)
今後、開発の段階で定期処理や管理系の処理に使用していけたらと思います。