Photo by brandkojo 【💻】cronジョブとwheneverの関係性がいまいち掴めてない(わかんなすぎるメモ) まなぶいぬかぶ 2024年11月23日 14:15 定期的にコマンド自動実行してくれるcronジョブについて、railsでの使い方がいまいちわかってない。理解深めるためのメモ。下の記事を見てみた。 【Rails】wheneverでcronを設定 - Qiita whenever、cronとはcron「クロン」または「クーロン」と呼ばれ○時になったら○○のコマンドを実行といった具合に qiita.com 概要まとめてみると…・cronは定期的にコマンド実行するためにずっとメモリ上で待機してるプロセス・crontabに記載しておけばcronに決まった時間に処理をさせることができる。・crontabはruby向けの書き方ができない。⇨rubyでもcronとかcrontabへの書き込み簡単にできるようにあるのがwheneverライブラリ・wheneverインストールで自動生成されるschedule.rbに書き込めば、自動でcrontabに変換記載してくれる。・つまりrailsでcron動かすために記載する必要があるのはschedule.rb上の解釈が合ってるかAIに確認してみたあなたの解釈の確認cron:正解: cron はLinuxやUnix系のシステムで、指定した時間に定期的にコマンドを実行するためのデーモンプロセスです。crontab に記載した内容に基づいて、決まった時間に処理を行います。crontab:正解: crontab は、cron に実行させたいコマンドやスクリプトを設定するためのファイルです。このファイルは特定の形式で書かれ、基本的にはシェルコマンドを記述します。Rubyの特別な構文は使えません。wheneverライブラリ:正解: whenever ライブラリは、Rubyで書かれたコードを使って簡単に cron ジョブを管理するためのツールです。これにより、Rubyの構文を使ってスケジュールを設定できるようになります。schedule.rb:正解: whenever をインストールすると自動生成される schedule.rb ファイルにスケジュールを記述します。このファイルの内容は、whenever を使って crontab に変換され、実際に cron に登録されます。Railsでのcron動作:正解: Rails アプリケーションで cron ジョブを動かすためには、主に schedule.rb に必要な設定を記載することが重要です。これによって、簡単に cron ジョブを管理できます。ちなみにwheneverではjob_typeっていう4種類の処理をデフォルトで行えるらしい。command: bashコマンド実行 rake: rakeタスク実行 runner: Rails内のメソッド実行 script: scriptの実行書き方としては以下みたいな感じ。これはjob_typeのrakeを使用してるevery 1.hours do rake "state:change" end ダウンロード copy #わんこプログラミング