0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Rakeタスク...タスク(作業)の自動化について

Last updated at Posted at 2024-10-25

はじめに

この記事は、Ruby on rails 初心者が備忘録として作成したものです。なにか間違い等ありましたら、ご指摘よろしくお願いします。

Rakeタスクとは?

  • Rubyコードでタスクとして作成し、必要なときに実行することができる
     => Rake は Ruby のビルドツールで、タスク(作業)を自動化
  • この時に実行する処理内容がrakeタスク
     =>Rakefileに定義
  • Rake タスクの用途
     =>データベースの初期化や更新
       定期的なデータのクリーンアップや集計
       バッチ処理の実行
       テストの実行や自動化されたタスクの実行 等々…

要するに、定期的なメール送信、古いデータのクリーニング(例:x日以上経ったログデータや不要なキャッシュを削除する処理)、記事等の自動公開が可能に。

  • Rake と Whenever の連携
    Rakeタスクは単体では手動でコマンドを実行する必要がありますが、Wheneverを使うと、任意のタイミングで自動で実行できるようになる。

Rakeタスクの作成

  • /lib/tasks フォルダ配下に.rakeファイルを作成
namespace :名前空間 do
  desc タスク説明
    task タスク名 do
      タスク本体
    end
end

Wheneverの設定

  • gem 'whenever'
    cronの設定を、rubyの簡単な文法で扱えるようにしたライブラリ
    cron = 定期的にコマンドを実行するためにメモリ場で常に命令を待機しているプロセス

詳細は以下の記事を参照ください
https://qiita.com/mmaumtjgj/items/19e866f31541abb6c614

-config/schedule.rbを開いて、以下を追加

every <頻度> do
  rake "<タスク名>"
end

job_type :rake, "cd :path && :environment_variable=:environment bundle exec rake :task --silent :output"

every 1.hour do
  rake "publish:change_status"
end
  • <頻度>には1.day 1.week 1.minute 1.month 1.yearなどの単位を指定できる

Cronジョブの更新

  • 設定が完了したら、以下のコマンドを実行してCronジョブを更新
whenever --update-crontab
  • Cronジョブが正しく設定されているか確認するために、以下のコマンドを実行
crontab -l

参考

0
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?