積々RUNMIZZO

日々積み重ね

Rakeタスクの実装memo✍


Rakeタスクとは?

  • アプリケーションを起動せずに定義した処理を実行することができるやつ
  • わざわざアプリを起動せず定期タスクを実行できたりするので便利


(実装手順)

rails g task status_task

lib/tasks/配下に'status_task.rake'が作成される。


(記述例)

# 名前空間
namespace :status_task do
  # タスクの説明 desc => description(説明)
  desc '公開待ちの中で、公開日時が過去になっているものがあれば、ステータスを「公開」に変更されるようにする'
  # update_status_task => タスクの名前
  task update_status_task: :environment do
    # 実行したい処理を記述する場所
    Article.publish_wait.past_published.find_each(&:published!)
  end
end
  • 名前空間とはタスクが沢山あった時にグループ分けできるもの
  • :environmentはおまじないくらいの理解でOK


タスク一覧の確認コマンド

rake -T


参照

Rakeタスクの実装 - Qiita