カテゴリ: Laravel 更新日: 2026/06/01

Laravelのスケジューラとは?cron不要で定期実行を管理する仕組みを初心者向けに徹底解説

Laravelのスケジューラとは?cron不要で定期実行を管理する仕組み
Laravelのスケジューラとは?cron不要で定期実行を管理する仕組み

先生と生徒の会話形式で理解しよう

生徒

「Laravelで毎日決まった時間に処理を自動で動かすことってできますか?」

先生

「できます。Laravelにはスケジューラという便利な機能があって、定期実行を簡単に管理できます。」

生徒

「cronっていうのを使うって聞いたことがありますが、それとは違うんですか?」

先生

「cronは使いますが、Laravelのスケジューラを使うと複雑な設定をしなくても、コードだけで管理できるようになります。」

生徒

「なるほど、初心者でも使えそうですね!」

先生

「はい。それでは基本からわかりやすく解説していきます。」

1. Laravelのスケジューラとは?

1. Laravelのスケジューラとは?
1. Laravelのスケジューラとは?

Laravelのスケジューラとは、決まった時間に自動で処理を実行する仕組みです。例えば、毎日深夜にデータを整理したり、1時間ごとにメールを送信したりといった処理を自動化できます。

通常このような定期実行は「cron」という仕組みを使いますが、Laravelではスケジューラを使うことで、コードの中で一元管理できます。

イメージとしては「アラームアプリ」のようなものです。時間を設定しておくと、自動で処理が実行される仕組みです。

2. cronとは何か?初心者向け解説

2. cronとは何か?初心者向け解説
2. cronとは何か?初心者向け解説

cronとは、サーバーに備わっている定期実行の仕組みです。指定した時間になると、あらかじめ登録しておいたコマンドが実行されます。

例えば「毎日0時に処理を実行する」といったことが可能です。

ただし、cronは設定が少し難しく、複数の処理を管理すると混乱しやすいというデメリットがあります。

そこでLaravelのスケジューラを使うことで、cronは1つだけ設定し、あとはLaravelのコードで管理できるようになります。

3. Laravelスケジューラの仕組み

3. Laravelスケジューラの仕組み
3. Laravelスケジューラの仕組み

Laravelのスケジューラは、app/Console/Kernel.phpというファイルで管理します。この中に「どの処理を」「どのタイミングで実行するか」を書きます。

そしてcronでは、1分ごとにLaravelのスケジューラを呼び出すだけにします。


protected function schedule(Schedule $schedule)
{
    $schedule->command('inspire')->hourly();
}

このコードは「1時間ごとにinspireコマンドを実行する」という意味です。

4. cronの設定方法(最小限)

4. cronの設定方法(最小限)
4. cronの設定方法(最小限)

Laravelスケジューラを使う場合、cronには1つだけ設定すればOKです。


* * * * * php /path/to/artisan schedule:run >> /dev/null 2>&1

この設定は「1分ごとにLaravelのスケジューラを実行する」という意味です。

これにより、Laravel側で設定したスケジュールがすべて自動的に管理されます。

5. よく使うスケジュール設定一覧

5. よく使うスケジュール設定一覧
5. よく使うスケジュール設定一覧

Laravelでは簡単に時間指定ができるメソッドが用意されています。


$schedule->command('inspire')->daily();
$schedule->command('inspire')->everyMinute();
$schedule->command('inspire')->weekly();
$schedule->command('inspire')->monthly();

これらはそれぞれ「毎日」「毎分」「毎週」「毎月」を意味します。

難しいcronの記述を覚えなくても、直感的に書けるのが大きなメリットです。

6. 時間指定を細かく設定する方法

6. 時間指定を細かく設定する方法
6. 時間指定を細かく設定する方法

特定の時間に実行したい場合も簡単に設定できます。


$schedule->command('inspire')->dailyAt('09:00');

この例では「毎日9時に実行する」という意味になります。

また、曜日指定も可能です。


$schedule->command('inspire')->mondays();

このように、カレンダー感覚で設定できるのが特徴です。

7. スケジューラでできることの例

7. スケジューラでできることの例
7. スケジューラでできることの例

Laravelスケジューラを使うと、さまざまな自動処理が可能になります。

  • メールの自動送信
  • ログの削除や整理
  • データベースのバックアップ
  • 定期的なAPI通信

例えば、メール送信処理をスケジュールすることもできます。


$schedule->call(function () {
    \Mail::raw('テストメール', function ($message) {
        $message->to('test@example.com')
                ->subject('スケジューラテスト');
    });
})->daily();

このように、コードを直接書くこともできます。

8. Laravelスケジューラを使うメリット

8. Laravelスケジューラを使うメリット
8. Laravelスケジューラを使うメリット

Laravelスケジューラには多くのメリットがあります。

まず、管理がシンプルになります。cronをたくさん設定する必要がなく、Laravelのコードだけで管理できます。

次に、可読性が高い点です。コードを見るだけで「いつ実行されるか」がすぐにわかります。

さらに、保守がしやすいという特徴もあります。処理の追加や変更が簡単に行えます。

初心者でも扱いやすく、実務でもよく使われる重要な機能です。

カテゴリの一覧へ
新着記事
New1
Laravel
Laravelのルーティングでサブドメインを使う方法!初心者向けにやさしく解説
New2
Laravel
Laravelでマルチ言語ルートを設定する方法!ロケールごとのprefixで簡単管理
New4
Laravel
Laravelのインストール方法まとめ!ComposerとLaravel Installerの使い方
人気記事
No.1
Java&Spring記事人気No1
Symfony
SymfonyのRemember Me機能を完全解説!初心者でもわかるログイン保持の仕組み
No.2
Java&Spring記事人気No2
Laravel
Laravelのインストール方法まとめ!ComposerとLaravel Installerの使い方
No.3
Java&Spring記事人気No3
Laravel
LaravelのFeatureテストとUnitテストの違いを理解しよう
No.4
Java&Spring記事人気No4
Laravel
Laravelでルートに中間処理を追加する方法!ミドルウェア活用ガイド
No.5
Java&Spring記事人気No5
CodeIgniter
CodeIgniterで多言語対応(Language)を徹底解説!言語切り替え機能を実装
No.6
Java&Spring記事人気No6
Laravel
Laravelでログを出力する方法(Monolog・storage/logs)
No.7
Java&Spring記事人気No7
Laravel
Laravelでドメインルートを使う方法!マルチドメイン対応を初心者向けに解説
No.8
Java&Spring記事人気No8
Laravel
Laravelのルーティングでサブドメインを使う方法!初心者向けにやさしく解説